СКРЫТЬ переменные от Google с помощью mod rewrite

#php #.htaccess #mod-rewrite

#php #.htaccess #mod-перезапись

Вопрос:

Я заметил, что Google индексирует мои страницы с переменными в URL, а другие страницы без них. На этих других страницах нет переменных, и они отлично индексируются без расширения php.

Например:

mydomain.com/page.php?name=flinstones

мой htaccess переписывает это в:

mydomain.com/flinstones

Но он по-прежнему отображается как первый в поиске Google и Google Analytics.

Есть ли способ заставить его показывать / просматривать только красивые URL-адреса?

Вот мой код .. первая часть работает, но перенаправление не работает. Как мне заставить это работать?

 RewriteEngine On
RewriteRule ^([^/.] )/?$ page.php?name=$1 [L]

RewriteRule ^page.php?name=([^/.] )/?$ /$1  [R=301,L] 
  

Спасибо,

Ответ №1:

Да, вы можете указать Google, какая каноническая ссылка предназначена для страницы.

 <link rel="canonical" href="http://mydomain.com/flinstones" />
  

Комментарии:

1. Будет ли это иметь преимущество перед 301 перенаправлением или лучше использовать оба?

2. Это и перенаправление 301 будут иметь аналогичные результаты. У каждого есть свои преимущества. Canonical будет перехватывать URL-адреса, о существовании которых вы и не подозревали. 301s физически перенаправит пользователя (чтобы он видел хороший URL) и может иметь лучшие результаты для поисковых систем, отличных от Google. В конечном счете, вы могли бы использовать оба.

3. Спасибо! Я бы хотел, чтобы сначала заработал мой 301 редирект. 🙂

Ответ №2:

Да, никогда не заставляйте Google видеть уродливую ссылку! В вашем php / html-коде всегда используйте только его приятную форму. Тогда у Google нет шансов 🙂

Комментарии:

1. И вы можете подумать о создании 301 перенаправления, которые перенаправляют индексированные плохие URL-адреса на красивые URL-адреса. Таким образом, вы можете сохранить pagerank для ваших уже проиндексированных страниц, удалив их из индекса Google.

2. @Jan-Henk, да, хорошая заметка! Думаю, при обычном перенаправлении ему пришлось бы ждать дольше.

3. Да, конечно, я использую только красивые URL-адреса для своих ссылок на сайте. Это так же просто, как добавление [R=301,L] к моему правилу RewriteRule ^([^/.] )/?$ page.php?name=$1 [L] , и это должно это исправить?

4. @checkenginelight, НЕТ! Это правило, которое делает уродливый URL для вас, но он должен быть только внутренним. Вам нужно добавить новое правило, которое переписывает уродливый URL на хороший, и это правило будет использовать R=301 атрибут.

5. Не могли бы вы привести пример того, каким должно быть новое правило?

Ответ №3:

Mod rewrite означает: Если запрос страницы происходит с этой формой ‘xxxxx’
, управляйте им так, как это было ‘гггг’
, И сообщайте что-либо запрашивающему.
Итак, в вашем случае Google считает, что оба URL-адреса действительны (и дублируются), ой!
Для вашего случая используйте a 301 redirect , что означает: ‘xxxxx’ не является допустимым запросом (или устарел), пожалуйста, запрашивающий (Google или любой другой) использует вставку ‘гггг’. тогда ‘xxxxx’ скоро будет забыт.
С другой стороны, это правильно для mod rewrite вашего противоположного случая:

mydomain.com/flinstones переписано на:
mydomain.com/page.php?name=flinstones
соблюдать правила SEO и позволить php управлять запросом.