向网址添加尾随斜杠

时间:2009-11-03 15:36:31

标签: regex .htaccess mod-rewrite regex-negation regex-lookarounds

Google上有add trailing slash .htaccess的结果很多,但我发现的所有示例都需要使用您的域名,如下例所示:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !example.php
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://domain.com/$1/ [L,R=301]

我的问题是硬编码的域名无法在我的本地开发机器上运行。有没有办法在没有明确告诉mod_rewrite域名的情况下添加尾部斜杠?

2 个答案:

答案 0 :(得分:7)

您无需指定域,只需使用绝对URL路径:

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

这也会检查URL方案是否过时。

答案 1 :(得分:3)

这应该有效:

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