2012-04-19 2 views
0

Мы изменяем структуру, узлы и старые URLs выглядеть следующим образом:.htaccess проверить specfic запроса атрибута строки

http://www.website.co.uk/pages.php?PageId=7 

Новый URL является:

http://www.website.co.uk/niceurl 

И у меня есть этот .htaccess который поставляется с CMS, который я использую, поэтому его функциональность не может работать иначе.

<IfModule mod_rewrite.c> 

Options +FollowSymLinks 

RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME}/index.html !-f 
RewriteCond %{REQUEST_FILENAME}/index.php !-f 

RewriteRule ^(.*)$ index.php/$1 

</IfModule> 

Что я действительно нужно сделать, это проверить, если pages.php становится запросила и если это так игнорировать правило:

RewriteRule ^(.*)$ index.php/$1 

Тогда после этого правила сделать что-то вроде:

RewriteRule ^PageId=7(.*)$ /niceurl [R=301] 

Любая помощь будет оценена по достоинству.

ответ

0

Решение:

<IfModule mod_rewrite.c> 

Options +FollowSymLinks 
RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME}/index.html !-f 
RewriteCond %{REQUEST_FILENAME}/index.php !-f 

RewriteCond %{QUERY_STRING} !(PageId=7) 

RewriteRule ^(.*)$ index.php/$1 

RewriteCond %{QUERY_STRING} PageId=7 
RewriteRule .* /niceurl? [R=302,L] 

</IfModule> 
Смежные вопросы