2015-06-10 5 views
1

Im получает головную боль над этим.mod_rewrite с двумя параметрами

Если запрашиваемый файл CSS имеет QP определен он должен переписать в виде линии 1. Но если это не следует переписать в виде линии 2.

Почему это не работает?

RewriteRule /css/(.*).css?qp=(.*)$ /build/css.php?request=$1&qp=$2 [QSA] 
RewriteRule /css/(.*).css$ /build/css.php?request=$1 [QSA] 

Может кто-нибудь объяснить, почему это не работает?

+0

Предполагая, что ваш htaccess находится в корневой папке, вам не нужна ведущая косая черта в вашем правиле. '/ css /' должен быть 'css /'. Кроме того, вы можете попробовать добавить флаг L в свои варианты перезаписи '[QSA, L]'. Это приводит к чему-то вроде: вы нашли совпадение, прекратили поиск и выполнение. – andrew

ответ

2

Снимите косую черту из RewriteRule. Он не получает его. И не получает строку запроса. Если qp присутствует, QSA сохранит его. Должно быть достаточно:

RewriteEngine on 
RewriteRule ^css/(.*).css$ /build/css.php?request=$1 [QSA] 
+0

Линия 2 работала раньше, когда мне нужна только 1 переменная. С ведущей косой чертой – Jacob

+0

@Mana Я отредактировал ответ – splash58

+0

Вот и все! Большое спасибо! – Jacob

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