Web.config:使用尾部斜杠将URL输入重定向到URL而不使用尾部斜杠

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Web.config:使用尾部斜杠将URL输入重定向到URL而不使用尾部斜杠相关的知识,希望对你有一定的参考价值。

我继承了一个在IIS 7.5上运行的网站php网站。

如果我去:https://www.example.com/page没有错误,它会按预期显示page.php内容。

如果我去:https://www.example.com/page/我收到404未找到错误。我想要重定向/页面并显示page.php内容。

我相信这是因为服务器正在寻找文件页面/ .php(或page.php / ??),但我需要一些帮助来解决在web.config中放置什么代码来解决这个问题。

答案

如果您使用iis,请在web.config中添加此项以始终从URL中删除尾部斜杠:

<rule name="Remove trailing slash" stopProcessing="true">  
<match url="(.*)/$" />  
<conditions>  
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />  
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />  
</conditions>  
<action type="Redirect" redirectType="Permanent" url="{R:1}" />  
</rule> 

如果你有一个Apache Web服务器,那么在.htaccess中添加:

 RewriteEngine on
 #unless directory, remove trailing slash
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^(.*)/$ /$1 [R=301,L]

 #resolve .php file for extensionless php urls
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_FILENAME}.php -f
 RewriteRule ^(.*)$ $1.php [L]

 #redirect external .php requests to extensionless url
 RewriteCond %{THE_REQUEST} ^[A-Z]+ /([^/]+/)*[^.#? ]+.php([#?][^ ]*)? HTTP/
 RewriteRule ^(([^/]+/)*[^.]+).php /$1 [R=301,L]

以上是关于Web.config:使用尾部斜杠将URL输入重定向到URL而不使用尾部斜杠的主要内容,如果未能解决你的问题,请参考以下文章

配置web.config以将具有特定模式的URL重定向/转发到另一种模式(使用冒号和双斜杠)

代理传递 url 中的 NginX 尾部斜杠

Azure APIM 网关正在修剪 api url 中的尾部斜杠

将 Azure 静态网站配置为不需要尾部斜杠

htaccess:从以.xml / only结尾的URL中删除尾部斜杠

nginx 重写URL尾部斜杠