通过使用htaccess保留URL参数,在尾随斜杠后保留URL

时间:2014-01-08 12:13:05

标签: apache .htaccess

由于使用了相对网址,Google Crawler错误地将我们的网站编入索引。 在对Google中的索引网址进行彻底分析之后,我们得出的结论是,我们应该通过采用Trailing Slash之后的部分重定向URL,但有一些例外。因此,我们尝试将以下许多网址放在下面,以及如何将它们重定向到。

 /a.php/ - Redirect to /a.php
   /a.php// - Redirect to /a.php
   /a.php - Retain as it is
   /a.html - Retain as it is
   /a.php/a.html - Redirect to /a.html
   /a.php/b.php?a=b - Redirect to /b.php?a=b
   /a.html/b.php - Redirect to /b.php
   /a.html/b.php/c.html - Redirect to /c.html
   /a.php/b.php?a=b/c.php?a=b - Redirect to /c.php?a=b
   /a.html/b.php - Redirect to /b.php

请注意,/ index.php已重定向到www.domain.com 你能帮我们提供一个htaccess代码,我们可以使用它来实现这些重定向

1 个答案:

答案 0 :(得分:1)

我相信这应该有效:

# This should match the first two
RewriteCond %{THE_REQUEST} (/[^/]+)(/+) HTTP/1\.[01]$
RewriteRule .* %1 [L,R=301]

# This should match the rest, without matching /a.php and /a.html
RewriteCond %{THE_REQUEST} !^[A-Z]+ /[^/]+ HTTP/1\.[01]$
RewriteCond %{THE_REQUEST} ^[A-Z]+ (/[^/]+)?(/[^/]+)(/[^/]+) HTTP/1\.[01]$
RewriteRule .* %3 [L,R=301]