Скажите, что я хотел http://domain.com/product/?id=123
стать http://domain.com/product/foo
, как это сделать в .htaccess
? Я пробовал что-то вроде этого, но это не помогло:mod rewrite строк запроса
RewriteCond %{QUERY_STRING} ^id=123$ [NC]
RewriteRule ^/product$ /product/foo [NC,L,R=301]
Предложения?
ПРИМЕЧАНИЕ: Мне не нужно фиксировать значение параметра id
, поскольку я не буду использовать его в новом URL-адресе.
UPDATE 1:
RewriteEngine On
RewriteBase /fisher
RewriteCond %{QUERY_STRING} ^id=123 [NC]
RewriteRule ^product/$ /product/foo [NC,L,R=301]
- Показаны RewriteEngine и RewriteBase
- Удалить
$
в RewriteCond - Удалить
/
в RewriteRule
Когда я иду в http://localhost/fisher/product/?id=123
ничего не происходит. URL-адрес остается тем же.
Постарайтесь избавиться от косых черт в начале вашего шаблона RewriteRule. Пути не начинаются с косой черты в файле .htaccess, потому что файлы .htaccess выполняются для каталога, в котором они находятся. (Обратите внимание, что пути RewriteRule начинаются с прямой косой черты в файле httpd.conf.) – Bobulous
Обновлен мой вопрос. – snoopy76