LINUX.ORG.RU

Помогите написать правило для mod_rewrite


0

0

Нужно написать правило для трансформации index.php?key_value -> index.php_key=value.
index.php_key=value - реальный файл но межет его не быть. тогда 404

Но вообщето в идеале бы ло бы запрос index.php?key_value шел не на index.php а на index.php?key_value файл



Последнее исправление: Spinel (всего исправлений: 1)

то есть у тебя файл с именем index.php?key_value ? ты полюбому решил написать что то адское, не вижу смысла в таком изврате

solarys
()

Отпраивть запрос в файл с именем index.php?key_value не получится(возможно ошибаюсь), так как mod_rewrite просто переписывает один get запрос в другой, а поп правилам index.php?key_value это index.php с пустым get параметром key_value.

Вообще можно это обойти. Например написать класс(функцию, метод класса)назовем например RewriteUrl, который будет на вход получать все запросы ($_SERVER['REQUEST_URL']) разбирать его (регулярками или как-нибудь еще, реализация на твое усмотрение) и подгружать необходимые файлы(выполнять действия, только по хорошему это уже должен делать другой класс, класс RewriteUrl должен только возвращать параметры, какой скрипт запустить и какие переменные ему передать).

При таком раскладе получается независимая от веб-сервера (на апаче и nginx например различаются реврайты) система. легко переноситься без переписывания реврайтов.

solarys
()

Так же небольшое замечание, файл с именем index.php_key=value даже если откроется, пхп код не будет выполнен так как расширение файла не php, оно вообще отсутствует(точнее равно .php_key=value), просто вывалит все содержание файла как текст.

solarys
()
Ответ на: комментарий от solarys

А нельзя "?" заэкранировать на выходе?

Deleted
()

вкралась небольшая ошибка выглядеть должно так index.php?key=value -> index.php_key=value.

Но вообще-то в идеале было бы запрос index.php?key=value шел не на index.php а на index.php?key=value файл

Spinel
() автор топика
Ответ на: комментарий от Spinel

зачем тогда вообще реврайт? просто создавай файлы нужные в нужных папках...

trashymichael ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.