海纳百科

海纳百科

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

吃瓜阿阳

友情提示点击顶部放大镜 可以使用站内搜索 记住我们的地址 www.hainabaike.com


第一步:确认网站开启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.hainabaike.com/$1/ [L,R=301] : 自动将符合上述条件的url以301跳转重定向至以斜杠结尾的版本,比如说将“http://www.hainabaike.com/wxarticle”重定向至 “http://www.hainabaike.com/wxarticle/”,其中“L”指该行为规则的最后一行,而“R=301”则指明采用301 Redirect。当然,您在使用时应将“http://www.hainabaike.com/”替换成自己网站的url。

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

 

RewriteCond %{REQUEST_FILENAME} !-f

#RewriteCond %{REQUEST_URI} !(w+)/$
#RewriteRule ^(w+)$ $1/ [L,R=301]  #([^.]*[^])

以上会把所有路径全部加上/ 所以不好用 以下 可以限制目录 排除 html

#两个字母以上的目录自动加上斜杠 
RewriteCond %{REQUEST_URI} /+[^.]+$ 
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]

 

    标签:

    发布评论 条评论)

    评论列表

    2024-03-16 12:11:48

    非本站会员

    2024-03-14 22:46:07

    不错不错

    2024-03-14 22:45:09

    确实是会有用的