Объединение нескольких правил перезаписи htaccess в одно - PullRequest
2 голосов
/ 16 января 2010

Во-первых, позвольте мне сказать следующее: я сосу на регулярные выражения и htaccess. Я пытаюсь создать правило, которое будет правильно анализировать сегменты URL в переменные. Пока у меня есть это:

RewriteRule ^([^/]+)/?$ index.php?query[]=$1 [QSA,L]
RewriteRule ^([^/]+)/([^/]+)/?$ index.php?query[]=$1&query[]=$2 [QSA,L]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ index.php?query[]=$1&query[]=$2&query[]=$3 [QSA,L]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$ index.php?query[]=$1&query[]=$2&query[]=$3&query[]=$4 [QSA,L]

Это работает, вроде как, но я чувствую, что это дольше, чем нужно; а что если я хочу 5 или 6 или 7 переменных? Есть ли более сжатый способ написать это?

Кроме того, когда я выкладываю массив запросов, первым элементом всегда является index.php. Что с этим?

1 Ответ

1 голос
/ 17 января 2010

Не используйте RewriteRule для преобразования pathinfo в параметры запроса, но просто включите MultiViews на HTTP-сервере Apache и используйте $_SERVER['PATH_INFO'] в index.php с небольшой помощью explode().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...