2015-08-04 2 views
1

У меня есть кнопка поиска по ключевым словам, связанная с mydomain.com/product/search/?tag=hoodies, которую я хочу переписать в браузере, чтобы отобразить как «mydomain.com/hoodies/ (но по-прежнему тянуть содержимое из этого оригинального URL)RewriteRule для строки запроса для статического URL

Св чисто эстетика двигаться, я попытался:.

RewriteEngine On 
RewriteCond %{QUERY_STRING} ^tag=tanks 
RewriteRule ^product/search/$ /tanks/ [L,QSA,NC] 

не работает для меня, любых предложений

ответ

1

Вы можете использовать этот код в? ваш DOCUMENT_ROOT/.htaccess файл:

RewriteEngine On 
RewriteBase/

# external redirect from actual URL to pretty one 
RewriteCond %{THE_REQUEST} \s/+product/search/\?tag=([^\s&]+) [NC] 
RewriteRule^/%1? [R=302,L,NE] 

# internal forward from pretty URL to actual one 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]+)/?$ product/search/?tag=$1 [L,QSA] 
+0

Спасибо Anubhava! Я очень ценю это. Я также заметил, сколько раз вы помогали другим с вопросами htaccess, вы очень полезны для этого сообщества :) Просто одна мелочь, как бы добавить/суффикс к каждому URL-адресу, чтобы он заканчивался как mydomain.com/ hoodies/(прямо сейчас его отсутствует последний «/». Спасибо! – Sgtmullet

+1

Nevermind, я добавил /% 1 /? и теперь он работает. Последнее, если я могу (все еще относящееся к OP), следует изменить это на 301 перенаправить или оставить его на 302? – Sgtmullet

+1

Да, когда-то проверенное изменение 302 - 301. Я использую только 302 для тестирования. – anubhava