2012-08-24 29 views
-1

我想将网页请求从example.org重定向到www.example.org。我想我有权利的规则,但它增加了两个额外的正斜杠:修复添加两个额外斜线的RewriteRule

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^example\.org [NC] 
RewriteRule ^(.*)$ http://www.example.org/$1 [R=permanent,L] 

以上会带我从example.orgwww.example.org//

有没有办法来剥夺那些尾随斜线?我尝试了以下变体,它去掉那些斜线,但会导致重定向循环:

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^example\.org [NC] 
RewriteRule ^(.*)$ http://www.example.org/$1 [R=permanent,L] 
RewriteRule ^(.*)/$ /$1 [L,R=301] 

如何我可能会解决这个问题?

+0

你不想从'//'添加重定向到'/',这会减慢你对网站的访问速度,并且可能会混淆你的搜索引擎优化。修复实际问题(首先生成'// URL')。 –

回答

1

尝试在RewriteEngine on之后加上RewriteBase /

如果不这样做,请将您的规则更改为RewriteRule ^/(.*)$ http://www.example.org/$1 [R=301,L],这样您就不会捕获到初始/

+0

第一种解决方案出现错误“RewriteBase:只在每个目录下的配置文件中有效”,但第二种解决方案在Chrome,Safari和Firefox(清除缓存后)似乎可以正常工作。谢谢! –