如何用htaccess处理/ url和/ url / redirects?

时间:2014-01-04 12:54:10

标签: regex .htaccess mod-rewrite redirect trailing-slash

我正在重写所有网址并简写其中一些:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(([^\.]+))\.pl [NC]
RewriteRule ^(.*)$ http://%1.pl%{REQUEST_URI} [R=301,L]
RewriteRule ^test$ test-page.php [R=301,L]

这样 example.pl/test重定向到example.pl/test-page.php

example.pl/test/重定向到example.pl/

虽然它应该: example.pl/test/重定向到example.pl/test-page.php

如何处理/url/url/重定向?

我认为它必须带有斜线斜杠。

2 个答案:

答案 0 :(得分:1)

试试这个:

RewriteEngine On
RewriteRule ^(.*)/$ http://%{HTTP_HOST}/$1 
RewriteRule ^test$ test-page.php [R=301,L]

经过测试here

答案 1 :(得分:1)

您需要使用/?$正则表达式使尾随斜杠可选。试试这些规则:

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^www\.([^.]+)\.pl [NC]
RewriteRule ^ http://%1.pl%{REQUEST_URI} [R=301,L]

RewriteRule ^test/?$ test-page.php [NC,R=301,L]

请务必在新浏览器中对此进行测试,以避免301缓存问题。