2016-11-18 3 views
1

Я переписан, по .htaccess, категория динамического URL генерируется с помощью строки запроса в этом режиме:Htaccess: переписать и перенаправлять 301

RewriteEngine On 
RewriteRule ^id1-([^-]*)-id2-([^-]*)$ /page.php?id1=$1&id=$2 [L] 

Теперь моя переписывают работает в правильном направлении, и, например, следующие адреса привод на ту же страницу:

http://www.mysite.it/id1--id2-56789 
http://www.mysite.it/page.php?id1=&id2=56789 

Но теперь я хочу редирект 301, от второго типа к первому типу, для всех динамических адресов. Например:

из

http://www.mysite.it/page.php?id1=&id2=56789 

в

http://www.mysite.it/id1--id2-56789 

следующим образом не работает:

RewriteEngine On 
RewriteRule ^id1-([^-]*)-id2-([^-]*)$ /page.php?id1=$1&id=$2 [L] 
RewriteCond %{QUERY_STRING} (^|&)id1=$1($|&) 
RewriteCond %{QUERY_STRING} (^|&)id2=$2($|&) 
RewriteRule ^page\.php$ /id1-id2? [L,R=301] 

Где ошибка?

Вы можете мне помочь?

+0

ID всегда являются цифрами? –

ответ

1
RewriteEngine On 
RewriteCond %{THE_REQUEST} \s/page.php 
RewriteCond %{THE_REQUEST} \?id1=(\w+)&id2=(\w+)\s 
RewriteRule ^page.php /id1-%1-id2-%2? [NC,R=301,L] 

RewriteRule ^id1-([^-]*)-id2-([^-]*)$ /page.php?id1=$1&id2=$2 [L] 
+0

спасибо Душан! – mauro