mod_rewrite,尾部斜杠 - 一行而不是两行?

时间:2011-03-30 21:54:41

标签: apache .htaccess mod-rewrite

我一直在玩mod_rewrite使用.htaccess翻译一些目录 - 用于改进搜索引擎优化的目的,也可以产生更友好/更难忘的网址。

目前我唯一无法解决的问题是拖尾斜线。我想要的行为是你应该能够访问带有或不带斜杠的链接,只是为了减少错过的流量。

我的真实网址如下:

http://www.mydomain.com/shipyard/index.php

我希望人们能够通过以下方式访问它:

http://www.mydomain.com/shipyard/ 
http://www.mydomain.com/shipyard
http://www.mydomain.com/ships/ 
http://www.mydomain.com/ships 

当然,前两个被覆盖,因为它实际上是一个真实且可访问的URL,但我打算告诉Google,获取该页面的最佳方式是使用/ ship(无需移动目录,破坏现有链接等) )。

到目前为止我想出的最好的是:

RewriteRule ^ships/$ /shipyard/index.php [L]
RewriteRule ^ships$ /shipyard/index.php [L]

然而,我只知道我使用两行只需要一行,但无论我怎么做,我都拿不到!我知道我错过了一些非常基本和/或明显的东西,但我需要一个指针......谢谢!

1 个答案:

答案 0 :(得分:2)

RewriteRule ^ships(/)?$ /shipyard/index.php [L]

这意味着斜杠可能存在也可能不存在。