mod_rewrite 301 Redirect: от старого к новому динамическому URL - PullRequest
1 голос
/ 26 августа 2010

Я пытаюсь заставить работать mod_rewrite правильно.

Вот код:

RewriteCond %{QUERY_STRING} ^main_page=product_info&products_id=301$ 
RewriteRule ^index\.php$          
/blog/shop/index.php?route=product/product&product_id=301? [R=301,L]

Работает, но в конце добавлен новый URL% 3f. Может ли кто-нибудь помочь мне заставить его работать?

Ответы [ 4 ]

0 голосов
/ 26 августа 2010

%3f - это ? в конце замены в процентном кодировании. Просто бросьте ? в конце:

RewriteCond %{QUERY_STRING} ^main_page=product_info&products_id=301$ 
RewriteRule ^index\.php$ /blog/shop/index.php?route=product/product&product_id=301 [R=301,L]

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

0 голосов
/ 26 августа 2010

% 3f - знак вопроса в конце вашего утверждения.Возьми это, и ты должен быть хорошим.

RewriteCond %{QUERY_STRING} ^main_page=product_info&products_id=301$ 
RewriteRule ^index\.php$          
/blog/shop/index.php?route=product/product&product_id=301 [R=301,L]
0 голосов
/ 26 августа 2010

% 3f это "?" у вас есть в конце вашего "Целевого URL" - только URL сбежал Это действительно должно быть там?

0 голосов
/ 26 августа 2010

Поместить в конце флаг запрета выхода:

RewriteRule ^index\.php$          
/blog/shop/index.php?route=product/product&product_id=301? [R=301,L,NE]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...