2015-09-21 11 views
4

Я пытаюсь перенаправить большое количество 404s. Некоторые старые сайты, связанные с
http://example.com/product.tmpl?SKU=XXX
с XXX является числовым номером SKU.htaccess Перенаправление с переменной переносится

Я хочу, чтобы перенаправить на
http://example.com/product.php?SKU=XXX

Это где я получил до сих пор, но он не работает. У меня есть опечатка в моем коде?

RewriteEngine On 
RewriteCond %{QUERY_STRING} ^SKU=([^&]+) 
RewriteRule ^/?product\.tmpl$ /product.php?SKU=%1 [L,R=301] 

EDIT: Мой полный файл Htaccess гласит:

RewriteEngine On 
RewriteCond %{QUERY_STRING} ^SKU=([^&]+) 
RewriteRule ^/?product\.tmpl$ /product.php?SKU=%1 [L,R=301] 

# BEGIN WordPress 

<IfModule mod_rewrite.c> 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

# END WordPress 
+2

«ISN «работаю» - что происходит _exactly_? Что-нибудь? Что у вас в порядке. Хотя его можно немного прибрать. – MrWhite

+0

Извините, я ничего не делаю, я все еще пытаюсь использовать старый URL-адрес, и он будет на той же странице 404. – n1nja

+2

Хорошо, я должен спросить ... включен mod_rewrite? Разрешено ли вам использовать mod_rewrite в файлах .htaccess (т.е. соответствующая директива 'AllowOverride' установлена ​​в конфигурации вашего сервера)? Установлен ли параметр «Настройки + последующие символы»? – MrWhite

ответ

0

Просто попробуйте:

RewriteRule ^/?product\.tmpl$ /product.php [L,QSA] 

Модификатор QSA сохраняет строку запроса бы это ни было: http://httpd.apache.org/docs/2.4/rewrite/flags.html#flag_qsa

+0

Вам не нужен флаг 'QSA', если вы фактически не указали строку запроса в подстановке; строка запроса автоматически добавляется. Вы только _need_ флаг QSA, когда хотите объединить строки запроса. Однако это будет перенаправлять (или, по крайней мере, перенаправлять), если параметр «SKU» полностью опущен. – MrWhite

+0

@ w3d Совпадение '^ /? Product \ .tmpl $' выполняется только по пути к файлу, а не по всему запросу, которое будет '% {THE_REQUEST}', таким образом, оно будет работать с и без каких-либо параметров запроса , –

+0

Точно, он «перенаправляется, если параметр SKU полностью опущен». – MrWhite

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