Как предотвратить дублирование контента с помощью htaccess

Я использую.htaccess для создания чистого URL, но когда я проверил свой сайт example.com/some-request имеет дублированный контент с xyz.com/product_view.php?category_id=some-request

Я с трудом нахожу, как это исправить, и вот мое правило переписывания:

RewriteEngine on

RewriteBase /

RewriteRule ^([0-9a-zA-Z_-]+)$ product_view.php?category_id=$1 [NC,L]

Что может быть лучшим решением для этого?

1 ответ

Решение

Вам необходимо внешне перенаправить запросы на
example.com/product_view.php?category_id=some-request
в xyz.com/some-requestперед твоим внутренним переписыванием.

Попробуйте следующее:

RewriteEngine on
RewriteBase /

# Redirect direct requests for the real URL to your desired URL
RewriteCond %{THE_REQUEST} \?category_id=([^\ ]*)
RewriteRule ^product_view\.php /%1? [R=301,L]

# Existing rewrite to real URL
RewriteRule ^([0-9a-zA-Z_-]+)$ product_view.php?category_id=$1 [NC,L]

Немного в стороне... но это действительно дублирует, только если эти URL индексируются. Если вы всегда ссылались на свой "симпатичный" URL, тогда риск относительно невелик. Этого также можно избежать, установив соответствующий rel="canonical"link элемент на ваших страницах.

Другие вопросы по тегам