#apache #.htaccess #mod-rewrite #redirect #http-status-code-301
#apache #.htaccess #модификация-перезапись #перенаправление #http-status-code-301
Вопрос:
Я заметил, что поисковые системы сканируют как domain.co.uk и www.domain.co.uk версии веб-сайта, который я недавно разработал. Используя .htaccess, я смог настроить перенаправления http 301 так, чтобы:
- http://domain.co.uk перенаправляется на http://www.domain.co.uk
и
- http://www.domain.co.uk/index.html перенаправляется на http://www.domain.co.uk
Однако:
- http://domain.co.uk/index.html не перенаправляется на http://www.domain.co.uk как я и ожидал. Вместо этого перенаправление идет на: http://www.domain.co.uk/http://www.domain.co.uk /
Содержимое моего .htaccess (очевидно, я заменил свой домен, чтобы упростить задачу):
Options FollowSymlinks
RewriteEngine on
RewriteCond %{http_host} ^domain.co.uk [nc]
RewriteRule ^(.*)$ http://www.domain.co.uk/$1 [R=301,nc]
RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ http://www.domain.co.uk/$1 [R=301,L]
Я знаю, что, вероятно, я упускаю что-то очевидное, но, пожалуйста, не мог бы кто-нибудь помочь мне получить окончательное перенаправление на http://www.domain.co.uk работает, как ожидалось?
Ответ №1:
Первая часть вашего набора правил работает нормально, отсутствующий www. добавлен правильно. Для второй части вам нужно только простое правило для удаления index.html без использования каких-либо дополнительных условий:
Options FollowSymlinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain.co.uk [NC]
RewriteRule ^(.*)$ http://www.domain.co.uk/$1 [R=301,NC]
RewriteRule ^index.html$ http://www.domain.co.uk/ [R=301,L]
Я думаю, это должно сработать.
Комментарии:
1. Спасибо jCoder, для меня это имеет смысл, но domain.co.uk/index.html перенаправляет на сайт domain marketplace вместо этого теперь (www.sedo.co.uk ), есть идеи?
2. Я думаю, что это выходит за рамки вопроса о перезаписи .htaccess. Я думал, что вы использовали это доменное имя в качестве замены вашего реального домена (что-то вроде example.com ). Если вы являетесь владельцем этого домена, то вы могли бы проверить запись whois или связаться с вашей веб-хостинговой компанией.
3. Извините за путаницу, да, я все еще использовал domain.co.uk в качестве замены моего реального домена, просто чтобы упростить пример. Я владелец рассматриваемого домена и просто пытаюсь перенаправить все возможные маршруты на домашнюю страницу на www.mydomain.co.uk поскольку в настоящее время я, похоже, страдаю от разбавленных результатов поиска.
4. Хорошо, по какой-то причине при очистке кэша моего браузера, по-видимому, использовались последние настройки .htaccess, ваши изменения выше, к сожалению, вызывают цикл перенаправления.
5. Это интересно (потому что я пробовал это с собственным доменом). В любом случае, может возникнуть цикл перенаправления, если файл, вызываемый для ‘/’, сам выполняет внешнее перенаправление на ‘index.html ‘, который зависит от деталей реализации вашей страницы. Если возможно, проверьте доступ. файл журнала для домена, позволяющий увидеть, откуда происходят перенаправления.