Как 301 перенаправить «domain.com/?» на domain.com

Когда я захожу на свой домен "domain.com/?" или "domain.com/?any-other-character-here" показывает мою домашнюю страницу, это привело к дублированию результатов в Google. Веб-сервер - это Apache.

Мой код

ErrorDocument 404 domain.com/error404.html

RewriteEngine On

RewriteCond %{HTTP_HOST} ^domain.com

RewriteRule (.*) domain.com/$1 [R=301,L]

RewriteCond %{THE_REQUEST} \s/+\?\s

RewriteRule ^ /? [R=301,L]

Он перенаправляет не-www на www, и я добавил в него ваш код. Но все же см. Domain.com/?any-random-text не перенаправляет на 404


person Kevin Smith    schedule 18.02.2014    source источник


Ответы (1)


Чтобы исправить ошибку 404 и проблемы domain.com/?, вы можете перезаписать этот код:

ErrorDocument 404 http://domain.com/error404.html

RewriteEngine On

RewriteCond %{THE_REQUEST} \s/+\?
RewriteRule ^ /? [R=301,L]
person anubhava    schedule 18.02.2014
comment
Спасибо, но обновите свой ответ на мой отредактированный вопрос. Этот вопрос более ясен о том, что мне нужно. - person Kevin Smith; 18.02.2014
comment
Это причина, по которой вы сняли отметку о приеме? В любом случае мой ответ по-прежнему соответствует требованиям удаления дубликатов, поскольку я использую 301, который исправит результаты дублирования. - person anubhava; 18.02.2014
comment
Ваш код перенаправляет только domain.com/? но не domain.com /? ... - person Kevin Smith; 18.02.2014
comment
Код перенаправляет domain.com/? на domain.com и domain.com/any-random-text на http://domain.com/error404.html (если вам не нужен собственный обработчик ошибок, вы можете это изменить) - person anubhava; 18.02.2014
comment
извините, не могу прочитать код из комментариев, можете ли вы отредактировать вопрос и опубликовать его там? - person anubhava; 18.02.2014
comment
Вопрос исправлен моим кодом - person Kevin Smith; 18.02.2014
comment
хорошо, вы можете сказать мне, что должно делать ваше первое правило 301? - person anubhava; 18.02.2014
comment
Он перенаправляет не-www на www, и я добавил в него ваш код. Но все же см. Domain.com/?any-random-text не перенаправляет на 404 - person Kevin Smith; 18.02.2014
comment
Но, как вы можете видеть в своем вопросе, в ваших правилах нет www (может быть ошибка копирования / вставки). - person anubhava; 18.02.2014
comment
куда? Я не понимаю - person Kevin Smith; 18.02.2014
comment
Вы имеете в виду это изменение: ErrorDocument 404 domain.com/error404.html на ErrorDocument 404 www.domain.com/error404.html - person Kevin Smith; 18.02.2014
comment
Да, это нужно сделать www, также вам нужно протестировать это в новом браузере. - person anubhava; 18.02.2014
comment
Не работает, по-прежнему показывает мою домашнюю страницу. только domain.com/? перенаправляет на domain.com. Но domain.com/?any-text-here по-прежнему показывает мою домашнюю страницу, а не 404 - person Kevin Smith; 19.02.2014
comment
Поскольку domain.com/?any-text-here не является 404, поскольку any-text-here - это строка запроса, а URI - /, что является допустимым. - person anubhava; 19.02.2014
comment
Так что я должен делать? У меня есть неограниченное количество дубликатов для моей домашней страницы. - person Kevin Smith; 19.02.2014
comment
попробуйте обновленный код в моем ответе. - person anubhava; 19.02.2014
comment
Не знаю, почему вы сделали это бесплатно, но могу сказать спасибо, отличная работа! - person Kevin Smith; 19.02.2014
comment
Добро пожаловать, всегда приятно, когда все получается. - person anubhava; 19.02.2014
comment
domain.com/?= не перенаправляет - person Kevin Smith; 19.02.2014
comment
о нет, domain.com/?=0 не перенаправляет. - person Kevin Smith; 19.02.2014
comment
Это выглядит идеально. еще раз спасибо - person Kevin Smith; 19.02.2014