2010-05-11 2 views
1

Say В настоящее время у меня есть URL, как:URL Rewrite и переадресовать вопрос

http://mydomain.com/showpost.php?p=123

Теперь я хочу, чтобы сделать его красивее:

http://mydomain.com/123/post-title

Я использую апачский рерайт, который захватывает сегмент '123' и верните url на

http://mydomain.com/showpost.php?p=123

OK. Вот проблема. Я хочу перенаправить оригинальные недобрые URL-адреса, которые были проиндексированы Google, в красивые версии, я хочу этого, потому что я слышал, что Google может наказать меня, если он видит несколько URL-адресов, указывающих на идентичный контент. Поэтому мне нужно

перенаправления /showpost.php?p=123 к/123/пост-название

Это я должен делать в PHP код соге нет никакого способа, Apache, чтобы иметь возможность выяснить " после заголовка», но если я поместить код перенаправления в PHP кода, то это будет бесконечный цикл, например:

Запрос: /showpost.php?p=123

перенаправлены:/123/послезаголовок

переписан на: /showpost.php?p=123

снова перенаправлены:/123/пост-название

...

так далее и так далее.

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

Пожалуйста, помогите мне. Благодарю.

ответ

2

Вы можете установить переменную запроса в правиле перезаписи, добавив что-то вроде [E=rewritten:true] в конце строки RewriteRule, чтобы записать факт, что переписывание было выполнено. В вашем PHP вы должны иметь доступ к этому как $_SERVER['rewritten'] и выполнять перенаправление только в том случае, если флаг отсутствует.

В качестве альтернативы вы можете использовать правило перезаписи для перенаправления недоброго URL-адреса на красивое без заголовка сообщения, а затем использовать код приложения для выпуска другого перенаправления с добавленным заголовком сообщения. Разумеется, использование двух перенаправлений менее желательно, но это лишь временная мера, пока поисковые системы не обновят свои индексы, а затем вы можете удалить их.

Удостоверьтесь, что вы используете 301 Moved Permanent постоянно для вашей переадресации, кстати.

Смежные вопросы