Перенаправление .htaccess на основе строки запроса и удаление строки запроса - PullRequest
0 голосов
/ 24 августа 2011

Мне нужна инструкция перенаправления, чтобы перенаправить старый URL со строкой запроса на новый URL без строки запроса.И новый URL зависит от значения строки запроса.Например:

Я хочу: http: // www.mydomain.com/product.php?id_product=AAA

Перенаправит на:

http: // www.mydomain.com / product-name-for-product-number-1

и

http: // www.mydomain.com/product.php?id_product=BBB

Перенаправит на:

http: // www.mydomain.com/this-is-different-product-name-for-product-number-2

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 24 августа 2011

вы можете сделать этот тип перенаправления:

от: http: // www.mydomain.com/product-name-for-product-number-AAA
по адресу: http: // www.mydomain.com/product.php?id_product=AAA&name_product=product-name

от: http: // www.mydomain.com/this-is-different-product-name-for-product-number-2
по адресу: http: // www.mydomain.com/product.php?id_product=BBB&name_product=this-is-different-product-name

вы не можете динамически получить название продукта из файла htaccess, единственный способ сделать это:

RewriteRule ^(.+)-for-product-number-(.+)$ ^product.php?id_product=$2&name_product=$1

или вам нужно создать rewriterule для каждого имеющегося у вас продукта (вы можете сгенерировать .htaccess из сценария, который извлекает из базы данных идентификатор и имя всех продуктов):

RewriteRule ^product-name-for-product-number-1$ product.php?id_product=AAA
RewriteRule ^this-is-different-product-name-for-product-number-2$ product.php?id_product=BBB
0 голосов
/ 24 августа 2011

Мне кажется, вы не можете выполнить перенаправление на основе строки запроса.Поэтому вам нужно будет добавить флаг [QSA] и перенаправить в скрипт, который сможет перенаправить благодаря строке запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...