Получение двойной косой черты при перенаправлении на каноническое имя хоста только в Firefox (Django) - PullRequest
0 голосов
/ 03 декабря 2011

У меня есть веб-сайт с поддержкой Django, и я пытаюсь решить проблему с каноническим именем хоста. Я хочу, чтобы www.example.com перенаправил на example.com. Я попробовал оба метода, найденные в документации Apache здесь (прокрутите вниз до канонических имен хостов).

В настоящее время я пробую метод mod_rewrite, и у меня есть это в контейнере виртуального хоста:

   RewriteEngine on
   RewriteCond %{HTTP_HOST} !^example\.com$ [NC]
   RewriteCond %{HTTP_HOST} !^$
   RewriteRule ^/?(.*)$ http://example.com/$1 [L,R=301,NE]

Это работает для меня, за исключением одного случая. Только в Firefox, если я набираю www.example.com в браузере, он перенаправляет, и я вижу это в строке URL: example.com// (обратите внимание на 2 завершающих слеша).

Однако что-то вроде этого будет работать правильно: www.example.com/news/ перенаправляется на example.com/news/.

Я вижу это только по корневому URL в Firefox. Похоже, что он отлично работает на Windows под Chrome, IE9 и Opera (может быть, эти браузеры есть двойной слеш?). Мой Mac, использующий друга, говорит, что это нормально в Safari, но он также видит проблему в Firefox.

Что касается настроек Django, я использую значение по умолчанию APPEND_SLASH=True. Я не знаю, имеет ли Django какое-либо отношение к этому, но я уже пробовал правила mod_rewrite, подобные приведенным выше, на статических сайтах HTML, и всегда кажется, что это работает.

Ответы [ 2 ]

1 голос
/ 03 декабря 2011

Попробуйте игнорировать "/", заключив его в круглые скобки, поэтому, где бы он ни был, последняя часть должна работать (и это уже не 1 доллар, а 2 доллара в URL-адресе перенаправления):

RewriteEngine on
RewriteCond %{HTTP_HOST} !^example\.com$ [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^(/?)(.*)$ http://example.com/$2 [L,R=301,NE]

Пожалуйста, скажите мне, если это работает.

0 голосов
/ 15 ноября 2012

Это волшебным образом прекратилось, поэтому я предполагаю, что в какой-то момент возникла проблема с Firefox.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...