我的.htaccess
有一个奇怪的问题我有以下重写规则
#REMOVE TRAILING SLASH
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ $1 [R=301,L]
#REWRITES
RewriteRule ^clients(/)?$ /views/pages/clients.php [L]
RewriteRule ^about(/)?$ /views/pages/about.php [L]
RewriteRule ^contact(/)?$ /views/pages/contact.php [L]
RewriteRule ^mobile(/)?$ /views/pages/tags.php?tag=mobile [L]
RewriteRule ^tablet(/)?$ /views/pages/tags.php?tag=tablet [L]
这些规则确实有效,但其中两个行为很奇怪。
RewriteRule ^clients(/)?$ /views/pages/clients.php [L]
RewriteRule ^mobile(/)?$ /views/pages/tags.php?tag=mobile [L]
'clients'重写规则总是得到一个斜杠。
'移动'重写规则重写为http://www.mydomain.com/mobile/?tag=mobile
我需要解决此问题,因为这些规则会导致不必要的重定向,从而影响我的SEO性能
我发现这很奇怪,因为它们与其他类似,并且它们做得很好。
另一个奇怪的事实:在我的本地主机上,重写行为很好,它在我的生产服务器上,他们表现得很奇怪
此外,我发现以下重写规则也是相应的:
RewriteRule ^client(/)?$ /views/pages/clients.php [L]
这个没有添加尾部斜杠,所以它必须是规则左侧带有“clients”字样的东西。
和
这条规则也很好
RewriteRule ^mobiles(/)?$ /views/pages/mobile.php [L]
所以,当我在规则的左侧使用“客户端”和“移动”时,它会很奇怪。当我使用“客户”和“手机”时,他们表现得很好。
可以说'客户'和'手机'是保留字还是什么?
答案 0 :(得分:0)
如果生产服务器上有clients
目录,则可能会导致您在重写时遇到问题。 (生产服务器上存在移动目录可能存在类似的问题,但我不能确定自己不做一些测试。)