Если вы хотите избежать переписывания URL-адресов, начинающихся с /blog/
или /phpmyadmin/
, то вы , возможно, сможете отказаться от первого правила:
RewriteRule ^/(?:blog|phpmyadmin)/ - [L]
(замена RewriteCond
и удаление старого правила phpmyadmin).
Краткое объяснение: оно сопоставляет любые URL-адреса, начинающиеся с /blog/
или /phpmyadmin/
, и не переписывает их (-
для замены), а затем останавливает дальнейшее переписывание ([L]
).
Предыдущий ответ:
Для начала ваши правила переписывания противоречивы. Также на данный момент RewriteCond применяется только к первому правилу. Кроме того, последнее правило игнорируется из-за правила, перед которым оно соответствует всему. Вы можете захотеть что-то вроде этого:
RewriteRule ^/blog/(.*)$ /index.php?url=$1 [QSA,L]
как я полагаю, вы просто пытаетесь переписать все URL с /blog/foo/bar
на /index.php?url=foo%2fbar
? Если нет, пожалуйста, объясните, что вы пытаетесь сделать, и я отредактирую свой ответ.