开发者

double slash apache configuration

i'm deploying a ror application and now i have to rewrite the url (in apache) to

  • add a prefix www to the url
  • add / to the end of the url

So i took the following approach:

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]

The problem is that it is appending two trailing slash to my url So for example a resource /question/ask are becoming:

http://foo.com//question/ask

I tried to add the following Rule before all my Rewrite rules to try to remove the double //:

RewriteCond %{REQUEST_URI} ^//
RewriteRule ([^/]*)/+(.*) http://www.foo.com/$1/$2 [R=301,L]

but it didnt work.. any idea to rip off all extras "//" added to the url?


The $1 will include a / at the beginning. You probably want

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]
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜