从www.mydomain.com/foo重定向到www.mydomain.com/foo/

时间:2015-06-19 07:28:58

标签: php apache .htaccess mod-rewrite redirect

我在.htaccess文件中有一段代码: 用尾部斜杠替换php扩展名。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} (.*)/$
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule (.*)/$ $1.html [L]

RewriteCond %{REQUEST_URI} (.*)/$
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule (.*)/$ $1.php [L]

RewriteCond %{REQUEST_URI} (.*)/$
RewriteCond %{REQUEST_FILENAME}\.cgi -f
RewriteRule (.*)/$ $1.cgi [L]

## redirect /dir/foo to /dir/foo/


RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f [OR]
RewriteCond %{REQUEST_FILENAME}\.php -f [OR]
RewriteCond %{REQUEST_FILENAME}\.cgi -f
RewriteRule .* %{REQUEST_FILENAME}/ [R=301,L]
</IfModule>

我的问题是如何将所有请求从www.mydomain.com/foo重定向到www.mydomain.com/foo/? (注意尾部斜杠)

1 个答案:

答案 0 :(得分:1)

解决方案:

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

来源&amp;解释:http://enarion.net/web/htaccess/trailing-slash/

  • RewriteCond %{REQUEST_FILENAME} !-f如果文件存在则无重定向
  • RewriteCond %{REQUEST_URI} !(.*)/$条件:&#34;如果没有尾随斜杠&#34;
  • RewriteRule ^(.*)$ http://example.com/$1/ [L,R=301]重定向 到URL +尾部斜杠