2010-10-13 5 views
0

У меня есть этот адрес: http://localhost/zina/Artist%20One%20Demo?l=8&m=10&c И это должно стать: http://localhost/?p=Artist%20One%20Demol=8&m=10&c&option=com_zina&Itemid=82Нужна помощь с RewriteRule Regex

Я использую это переписать URL:

RewriteRule ^zina/(.*)?(.*)$ /?p=$1&$2&option=com_zina&Itemid=82 [L,R] 

Однако, я ветер с URLs, что выглядят так: http://localhost/?p=Artist%20One%20Demo/Title%20One&&option=com_zina&Itemid=82

В других словах 2 доллара ничем не сопоставляется. Может ли кто-нибудь сказать мне, почему?

ответ

1

? специальный символ (выбор 0 или 1 из предыдущего рисунка), .* жаден (будет соответствовать, насколько это может пойти, так до конца, так что $ 2 будет всегда быть пустым, как $ 1 съедает все до конца строки.

строки запроса не в струнах RewriteRule соответствует против и проверки образцов в строке запроса обычно производятся с RewriteCond %{QUERY_STRING} pattern перед RewriteRule.

Однако нам не нужно баловаться с регулярными выражениями, чтобы получить строку запроса в URL: «?»

RewriteRule ^zina/(.*)$ /?p=$1&option=com_zina&Itemid=82 [L,R,QSA] 
0

Это от манжеты и не проверено, но похоже, что вы не ускользаете от своего? в regex rewrite, чтобы он обрабатывал его буквально.

Попробуйте это возможно

RewriteRule ^zina/(.*)\?(.*)$ /?p=$1&$2&option=com_zina&Itemid=82 [L,R] 
+0

RewriteRule не работает вообще, если я спасаясь от – Malfist

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