2014-09-22 2 views
0

Я пытаюсь сделать правило перезаписи, но не могу найти правильное выражение. Я выполнял поиск в различных валидаторах регулярного выражения, и они говорят, что выражение работает..httaccess переписать правило условие не работает

Мой .htaccess выглядит следующим образом:

Options +FollowSymlinks -MultiViews -Indexes 
DirectoryIndex index.php index.html index.htm 
RewriteEngine on 
RewriteBase/
RewriteRule ^index\.php(.+)=([a-zA-Z]+)&([a-z]+)=([a-zA-Z]+)&([a-z]+)=([a-zA-Z]+)&([a-z]+)=(.*)$ /$3+$5+$7 [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

В примере URI является: http://www.example.com/index.php?r=site/action&param1=value1.

ответ

1

Вы не можете сопоставлять строку запроса с правилом перезаписи, вам нужно либо использовать переменные %{QUERY_STRING}, либо %{THE_REQUEST}.

Хотя это совершенно непонятно, что вы пытаетесь сделать, попробовать что-то вроде этого:

Options +FollowSymlinks -MultiViews -Indexes 
DirectoryIndex index.php index.html index.htm 
RewriteEngine on 
RewriteBase/

RewriteCond %{THE_REQUEST} \ /+index\.php\?(.+)=([a-zA-Z]+)&([a-z]+)=([a-zA-Z]+)&([a-z]+)=([a-zA-Z]+)&([a-z]+)=(.*) 
RewriteRule^/%3+%5+%7 [L] 
+0

то, что я пытаюсь сделать, это то, что правило перезаписи заменяет Ури по параметрам, которые я хочу. P.ex. заменяет /index.php?r=site/action¶m1=value1 на/value1. Спасибо за Ваш ответ! –

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