2010-03-14 68 views
-1

我正在部署RoR应用程序,现在我不得不重新改写URL(在Apache),以双斜线Apache配置

  • 添加前缀WWW的URL
  • 添加/来的结束网址

所以我采取了以下做法:

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] 

但它没有工作..任何想法撕掉所有附加“//”添加到网址?

回答

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]