2010-03-07 2 views
1

Я использовал перенаправление .htaccess redirect 301, чтобы перенаправить URL-адрес, который затем добавил все элементы строки запроса до конца, оставив меня с некоторыми URL-адресами, индексированными в Google, как /store/product/?d=department&s=section&p=product.Apache Mod_Rewrite строка запроса для стандартного url

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

мне удалось получить RewriteRule сортировать работы, в том, что /store/product/xxxxx перенаправляет /store/product/ как и должно быть, это просто не похоже на работу со всей строкой запроса.

То, что я использую это:

RewriteRule ^store/product/([a-zA-Z0-9\-_\?=&]+)$ http://www.example.com/store/product/ [NC,R=301,L] 

или

RewriteRule ^store/product/\?d=department&s=section&p=product$ http://www.example.com/store/product/ [NC,R=301,L] 

Надежда, что все это имеет смысл!

Большое спасибо

ответ

1
RewriteCond %{QUERY_STRING} !^$ 
RewriteRule ^store/product/.*$ http://www.example.com/store/product/? [NC,R=301,L] 
+0

Привет, это, кажется, дает мне цикл повторной записи, есть ли способ сделать повторную запись только в том случае, если в строке запроса есть что-то определенное? – stukerr

+0

Абсолютно. Исправлена. –

+0

Отличный материал! Большое спасибо – stukerr

0

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

RewriteRule ^store/product/[a-zA-Z0-9\-_=&]+$ http://www.example.com/store/product/? [NC,R=301,L] 

Обратите внимание на ? в конце URL-адрес подстановки.

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