4

有用于add trailing slash .htaccess在谷歌不少成绩,但我所有的例子中需要使用您的域名,如本例:添加尾部斜杠的URL

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域名的情况下添加尾部斜杠?

+0

看起来像一个问题,更属于serverfault.com而不是stackoverflow.com。 –

回答

3

这应该工作:

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

。*将匹配反斜杠,除了我的意思,比如下面的Gumbo用法,我会使用[^ /] *代替 –

+0

错误。 –

+0

@Oz,是的,那会更好。我只是展示了使用%{HTTP_HOST},所以我对最初给定的代码片段进行了微小的更改。 –

7

你并不需要指定域,你可以简单地使用绝对URL路径:

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

但这也使检查的网址计划已过时。

+0

+1 - 这应该工作得很好 - 感谢提及它... – nicorellius