网站目录添加反斜杠"/"的伪静态规则方法

今天访问自己的博客网站发现一处问题,因为之前用过Windows和Apache的环境,并未出现此问题。

Nginx中常出现类似访问 http://aihaoz.com/Linux 无法打开的情况,会出现404页面,而在目录后加上一条斜杠“/”就可以访问,例如:http://aihaoz.com/Linux/ 呵呵,这就尴尬了~~~我知道是伪静态的原味,但是不知道具体的规则是什么......

有问题就百度啊,但是百度给我代码是错误的,然后在李洋博客找到的这个规则,附上源代码,其中加粗的部分就是正确的代码,不是zb程序的话,只复制加粗内容即可。

Apache .htaccess

<IfModule mod_rewrite.c>    RewriteEngine On    RewriteBase /    RewriteRule ^([^\.]+[^/])$ /$1/ [L,R=301]    RewriteCond %{REQUEST_FILENAME} !-f    RewriteCond %{REQUEST_FILENAME} !-d    RewriteRule . /index.php [L]    </IfModule>


Nginx

if (!-f $request_filename){      rewrite ^/([^\.]+[^/])$ http://$host/$1$2/ permanent;  }  if (-f $request_filename/index.html){      rewrite (.*) $1/index.html break;  }  if (-f $request_filename/index.php){      rewrite (.*) $1/index.php;  }  if (!-f $request_filename){      rewrite (.*) /index.php;  }

最新方案

如果您的网站开启了https或者适用了小程序,那么请使用如下规则:

if (-d $request_filename) {       rewrite ^/(.*)([^/])$ https://$http_host/$1$2/ permanent;   }


IIS6+ISAPI Rewrite 2.X

[ISAPI_Rewrite]

RewriteRule /(?!zb_)([^\.]+[^/]) /$1/ [RP,L]    RewriteRule /default_([0-9]+)\.html /catalog\.asp\?page=$1    RewriteRule /category/(?!zb_)(.*)_([0-9]+)/ /catalog\.asp\?cate=$1&page=$2    RewriteRule /category/(?!zb_)(.*)/ /catalog\.asp\?cate=$1    RewriteRule /author-([0-9]+)_([0-9]+).html /catalog\.asp\?auth=$1&page=$2    RewriteRule /author-([0-9]+).html /catalog\.asp\?auth=$1    RewriteRule /tags-([0-9]+)_([0-9]+).html /catalog\.asp\?tags=$1&page=$2    RewriteRule /tags-([0-9]+).html /catalog\.asp\?tags=$1    RewriteRule /post/([0-9\-]+)_([0-9]+)/ /catalog\.asp\?date=$1&page=$2    RewriteRule /post/([0-9\-]+)/ /catalog\.asp\?date=$1    RewriteRule /post/(?!zb_)(.*)/ /view\.asp\?id=$1    RewriteRule /(?!zb_)(.*)/ /view\.asp\?id=$1

IIS6+ISAPI Rewrite 3.X

#ISAPI Rewrite 3

RewriteBase /    RewriteRule ^(?!zb_)([^\.]+[^/])$ /$1/ [NU,R=301]    RewriteRule ^default_([0-9]+)\.html$ /catalog.asp\?page=$1    RewriteRule ^category/(?!zb_)(.*)_([0-9]+)/$ /catalog.asp\?cate=$1&page=$2 [NU]    RewriteRule ^category/(?!zb_)(.*)/$ /catalog.asp\?cate=$1 [NU]    RewriteRule ^author-([0-9]+)_([0-9]+).html$ /catalog.asp\?auth=$1&page=$2 [NU]    RewriteRule ^author-([0-9]+).html$ /catalog.asp\?auth=$1 [NU]    RewriteRule ^tags-([0-9]+)_([0-9]+).html$ /catalog.asp\?tags=$1&page=$2 [NU]    RewriteRule ^tags-([0-9]+).html$ /catalog.asp\?tags=$1 [NU]    RewriteRule ^post/([0-9\-]+)_([0-9]+)/$ /catalog.asp\?date=$1&page=$2 [NU]    RewriteRule ^post/([0-9\-]+)/$ /catalog.asp\?date=$1 [NU]    RewriteRule ^post/(?!zb_)(.*)/$ /view.asp\?id=$1 [NU]    RewriteRule ^(?!zb_)(.*)/$ /view.asp\?id=$1 [NU]

IIS7、7.5、8+Url Rewrite

<?xml version="1.0" encoding="UTF-8"?>  <configuration>  <system.webServer>    <rewrite>     <rules>       <rule name="//" stopProcessing="true">        <match url="^(?!zb_)[^\.]+[^/]$"/>        <action type="Redirect" redirectType="Permanent" url="{R:0}/"/>       </rule>       <rule name="Imported Rule Default+Page" stopProcessing="true">        <match url="^default_([0-9]+)\.html$" ignoreCase="false" />        <action type="Rewrite" url="catalog.asp?page={R:1}" />       </rule>       <rule name="Imported Rule Category+Page" stopProcessing="true">        <match url="^category-([0-9]+)_([0-9]+).html$" ignoreCase="false" />        <action type="Rewrite" url="catalog.asp?cate={R:1}&page={R:2}" />       </rule>       <rule name="Imported Rule Category" stopProcessing="true">          <match url="^category-([0-9]+).html$" ignoreCase="false" />          <action type="Rewrite" url="catalog.asp?cate={R:1}" />       </rule>       <rule name="Imported Rule Author+Page" stopProcessing="true">        <match url="^author-([0-9]+)_([0-9]+).html$" ignoreCase="false" />        <action type="Rewrite" url="catalog.asp?auth={R:1}&page={R:2}" />       </rule>       <rule name="Imported Rule Author" stopProcessing="true">        <match url="^author-([0-9]+).html$" ignoreCase="false" />        <action type="Rewrite" url="catalog.asp?auth={R:1}" />       </rule>       <rule name="Imported Rule Tags+Page" stopProcessing="true">        <match url="^tags-([0-9]+)_([0-9]+).html$" ignoreCase="false" />        <action type="Rewrite" url="catalog.asp?tags={R:1}&page={R:2}" />       </rule>       <rule name="Imported Rule Tags" stopProcessing="true">        <match url="^tags-([0-9]+).html$" ignoreCase="false" />        <action type="Rewrite" url="catalog.asp?tags={R:1}" />       </rule>       <rule name="Imported Rule Date+Page" stopProcessing="true">        <match url="^date-([0-9\-]+)_([0-9]+).html$" ignoreCase="false" />        <action type="Rewrite" url="catalog.asp?date={R:1}&page={R:2}" />       </rule>       <rule name="Imported Rule Date" stopProcessing="true">        <match url="^date-([0-9\-]+).html$" ignoreCase="false" />        <action type="Rewrite" url="catalog.asp?date={R:1}" />       </rule>       <rule name="Imported Rule Article" stopProcessing="true">        <match url="^post/(?!zb_)(.*).html$" ignoreCase="false" />        <action type="Rewrite" url="view.asp?id={R:1}" />       </rule>       <rule name="Imported Rule Page" stopProcessing="true">        <match url="^(?!zb_)(.*).html$" ignoreCase="false" />        <action type="Rewrite" url="view.asp?id={R:1}" />       </rule>     </rules>      </rewrite>      </system.webServer>  </configuration>

相关文章

您需要 登录账户 后才能发表评论

发表评论 取消回复

电子邮件地址不会被公开。 必填项已用*标注