48 / 48 / 26
Регистрация: 31.05.2011
Сообщений: 139
|
|
1 | |
.htaccess. 301 редирект. Не всегда перенаправляет31.05.2011, 17:10. Показов 2145. Ответов 2
Метки нет (Все метки)
Добрый день!
Недавно перешли на VPS, до этого все работало нормально. Есть несколько доменов, которые нужно склеить: example.com, www.example.com, www.example.org, example.org Написал правило: Код
RewriteCond %{SERVER_NAME} ^www.example.com$ [OR] RewriteCond %{SERVER_NAME} ^example.org$ [OR] RewriteCond %{SERVER_NAME} ^www.example.org$ RewriteRule ^(.*)$ http://example.com/$1 [R=301,L] Если пойти по адресу, например, такому(вместо example.org может стоять любой неосновной домен): http://example.org/path/, то все нормально редиректится. Но если в ссылке будет отсутствовать завершающий слэш (http://example.org/path), то редирект не происходит, а просто выводится Код
Moved Permanently The document has moved here. Вообще, с завершающими слэшами какая-то проблема: в некоторых версиях FF ссылки без завершающего слэша не работают, хотя на старом хостинге все было нормально. Добавлено через 3 часа 38 минут Выяснил вот что: По любому запрашиваемому адресу без завершающего слэша nginx выдает 404 Not Found вместо 200 OK, хотя дальше все отрабатывает нормально, отдается сгенерированный html. Т.е. ответ сервера http://example.com/path и http://example.com/path/ идентичен за исключением того, что в первом случае выдается 404 Not Found, а во втором - 200 OK. Из-за чего такое может быть?
0
|
31.05.2011, 17:10 | |
Ответы с готовыми решениями:
2
301 редирект htaccess 301 редирект .htaccess Грамотный htaccess 301 редирект 301 редирект настройка .htaccess |
13208 / 6597 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
|
|
31.05.2011, 17:29 | 2 |
Вообще по смыслу
http://example.com/foo/bar - это файл bar в директории /foo/, а http://example.com/foo/bar/ - это директория /foo/bar/ Так у Вас nginx или Apache?
0
|
48 / 48 / 26
Регистрация: 31.05.2011
Сообщений: 139
|
|
31.05.2011, 17:39 [ТС] | 3 |
nginx на фронтэнде, apache на бэкэнде. Простите, с этого и надо было начать)
Дело в том, что ни http://example.com/foo/bar, ни http://example.com/foo/bar/ не существует. Это виртуальные адреса, которые с помощью mod_rewrite в любом случае ведут на /urlrewrite.php. Как мне кажется. поведение apache здесь правильное, так как нужный скрипт все-таки выполняется всегда, и страница генерируется и отдается, но вот nginx отдает неправильный ответ 404 Not Found.
0
|
31.05.2011, 17:39 | |
31.05.2011, 17:39 | |
Помогаю со студенческими работами здесь
3
Как сделать 301 редирект в .htaccess? ЧПУ и редирект 301 в файле htaccess .htaccess: редирект 301 с /url.php на /url (без .php) редирект 301 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |