双斜杠apache配置

时间:2010-03-14 11:25:11

标签: mod-rewrite apache2

我正在部署一个ror应用程序,现在我必须将url(在apache中)重写为

  • 在网址
  • 中添加前缀www
  • 添加/到网址的末尾

所以我采取了以下方法:

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]

但它没有工作..任何想法扯掉所有额外的“//”添加到网址?

1 个答案:

答案 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]