前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nginx给目录添加反斜杠的伪静态规则方法

Nginx给目录添加反斜杠的伪静态规则方法

作者头像
李洋博客
发布2021-06-15 11:13:33
2.8K0
发布2021-06-15 11:13:33
举报
文章被收录于专栏:李洋博客

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

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

有问题就百度啊,但是百度给我代码是错误的,请教了zbp的大神们(小峰和水水老师)然后在论坛找到的这个规则,附上源代码,其中加粗的部分就是正确的代码,不是zb程序的话,只复制加粗内容即可。

Nginx给目录添加反斜杠的伪静态规则方法 第1张
Nginx给目录添加反斜杠的伪静态规则方法 第1张

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或者适用了小程序,那么请使用如下规则:

PHP

代码语言:javascript
复制
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>

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-01-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档