Форум программистов, компьютерный форум, киберфорум
Apache, htaccess
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/12: Рейтинг темы: голосов - 12, средняя оценка - 4.83
48 / 48 / 26
Регистрация: 31.05.2011
Сообщений: 139
1

.htaccess. 301 редирект. Не всегда перенаправляет

31.05.2011, 17:10. Показов 2141. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!

Недавно перешли на 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.
Где "here" имеет правильную ссылку, т.е. http://example.com/path

Вообще, с завершающими слэшами какая-то проблема: в некоторых версиях FF ссылки без завершающего слэша не работают, хотя на старом хостинге все было нормально.

Добавлено через 3 часа 38 минут
Выяснил вот что:

По любому запрашиваемому адресу без завершающего слэша nginx выдает 404 Not Found вместо 200 OK, хотя дальше все отрабатывает нормально, отдается сгенерированный html.

Т.е. ответ сервера http://example.com/path и http://example.com/path/ идентичен за исключением того, что в первом случае выдается 404 Not Found, а во втором - 200 OK.

Из-за чего такое может быть?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.05.2011, 17:10
Ответы с готовыми решениями:

301 редирект htaccess
Здравствуйте. Подскажите: как сделать редирект со всех страниц вида...

301 редирект .htaccess
Добрый день, уважаемые форумчане:) Помогите, пожалуйста, разобраться в файле .htaccess. Мне...

Грамотный htaccess 301 редирект
Здравствуйте! Подскажите пожалуйста, те кто знают. Есть сайт: https://example.com Есть...

301 редирект настройка .htaccess
Здравствуйте. Нужно все URL вида - http://www.site.ru/show_good.php?idtov=1000000&grid=1...

2
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.05.2011, 17:39
Помогаю со студенческими работами здесь

Как сделать 301 редирект в .htaccess?
как сделать 301 редирект в .htaccess с помошью mod_rewrite со страницы...

ЧПУ и редирект 301 в файле htaccess
Всем привет! Копался во множестве мануалов, испробовал сотню различных способов, но не могу...

.htaccess: редирект 301 с /url.php на /url (без .php)
Граждане ученые, очередному чайнику требуется помощь в разжевывании и переваривании. Сейчас...

редирект 301
есть урл /cgi-bin/product/viewgroup.cgi?biggroup=124& надо сделать урл без амперсанда в конце...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru