Я пишу некоторые из своих собственных правил для нескольких сценариев PHP, которые я пишу, хотя у меня мало опыта работы с регулярными выражениями. Примечание: мало.
По сути, я хочу передать все URL-адреса, кроме нескольких, в качестве аргументов для index.php, переписав большинство URL-адресов, определенных как слаги в базе данных.
то есть: /admin, /config, /images, /lib и /template существуют, но я не хочу, чтобы их переписывали. Но все остальное я хочу передать в качестве аргументов в index.php.
Я делаю это в настоящее время с:
url.rewrite-once = (
"^/(.*)$" => "/index.php?$1"
)
Что прекрасно работает с слагами базы данных, однако также перенаправляет папки, перечисленные выше. Они содержат файлы, к которым необходимо получить прямой доступ, но я не могу нигде найти описание того, как исключить строки из совпадения.
Как только я узнаю, как это сделать, я смогу понять и остальное, но будучи новичком в регулярном выражении, я не знаю, с чего начать.
Любая помощь будет принята с благодарностью.
Редактировать: с тех пор я попробовал:
"^/(index\.php|admin|config|images|lib|template)" => "$0",
Для чего FF сообщает о бесконечном перенаправлении для тех папок;
"^/(?!(admin|config|images|lib|template))(.*)$" => "$0"
Не соответствует всему, кроме папок;
"^/([^(admin|config|images|lib|template)]*)$" => "/index.php?$1"
Опять же, ничего не переписывает;
"^/(.*)$" => "/index.php?$1"
Переписывает все, включая папки, которые я не хочу переписывать.