двойная косая черта - PullRequest
       9

двойная косая черта

0 голосов
/ 14 марта 2010

Я развертываю приложение ROR, и теперь мне нужно переписать URL-адрес (в Apache) на

  • добавить префикс www к URL
  • добавить / в конец 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]

Проблема в том, что он добавляет две косые черты в мой URL Так, например, ресурс / вопрос / спрос становятся:

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

Я пытался добавить следующее правило перед всеми моими правилами перезаписи, чтобы попытаться удалить двойное //:

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

но это не сработало .. есть идеи скинуть все дополнения "//", добавленные в URL?

1 Ответ

6 голосов
/ 15 марта 2010

$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]
...