我正在部署一个ror应用程序,现在我必须将url(在apache中)重写为
所以我采取了以下方法:
RewriteCond %{REQUEST_URI} ^/[^\.]+[^/]$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [R=301,L]
RewriteCond %{HTTP_HOST} ^foo\.com
RewriteRule ^(.*)$ http://www.foo.com/$1 [R=301,L]
问题是它会向我的网址添加两个尾部斜杠 例如,资源/问题/问题正在变为:
http://foo.com//question/ask
我尝试在我的所有重写规则之前添加以下规则以尝试删除双重//:
RewriteCond %{REQUEST_URI} ^//
RewriteRule ([^/]*)/+(.*) http://www.foo.com/$1/$2 [R=301,L]
但它没有工作..任何想法扯掉所有额外的“//”添加到网址?
答案 0 :(得分:6)
$1
在开头会包含/
。你可能想要
RewriteCond %{REQUEST_URI} ^/[^\.]+[^/]$
RewriteRule ^(.*)$ http://%{HTTP_HOST}$1/ [R=301,L]
RewriteCond %{HTTP_HOST} ^foo\.com
RewriteRule ^(.*)$ http://www.foo.com$1 [R=301,L]