Apache伪静态在网站目录没有反斜杠后自动添加反斜杠

时间:2023-01-11 14:55:48

第一步:确认网站开启REWRITE规则

  一般有两种情况:

  i.apache安装的时候已经包含rewrite功能

  ii.后续配置的时候新添加mod_rewrite.so。这种情况需要在httpd.conf文件中修改配置启动

  在conf目录下httpd.conf中找到

  LoadModule rewrite_module modules/mod_rewrite.so

  这句,去掉前边的注释符号“#”,或添加这句。

  允许在任何目录中使用“.htaccess”文件,将“AllowOverride”改成“All”(默认为“None”):

  # AllowOverride controls what directives may be placed in .htaccess files.

  # It can be “All”, “None”, or any combination of the keywords:

  # Options FileInfo AuthConfig Limit

  #

  AllowOverride All

  第二步:添加.htaccess文件

  在本地新建文件1.txt,并写入以下内容:

  RewriteEngine On
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_URI} !(.*)/$
      RewriteRule ^(.*)$ $1/ [L,R=301]

 

  此段代码意思是将网站后面没有加"/"的目录都加上"/"。

  说明:

  * RewriteCond %{REQUEST_FILENAME} !-f : 指定操作仅针对目录,对指向文件的url不进行rewrite操作;

  * RewriteCond %{REQUEST_URI} !(.*)/$ :判断url是否以斜杠“/”结尾;

  * RewriteRule ^(.*)$ http://www.baiye5.com/$1/ [L,R=301] : 自动将符合上述条件的url以301跳转重定向至以斜杠结尾的版本,比如说将“http://www.baiye5.com/wxarticle”重定向至 “http://www.baiye5.com/wxarticle/”,其中“L”指该行为规则的最后一行,而“R=301”则指明采用301 Redirect。当然,您在使用时应将“http://www.baiye5.com/”替换成自己网站的url。

  将1.txt文件上传至网站根目录。上传后改名为.htaccess。