Я пишу некоторые свои собственные правила для нескольких написанных мной PHP-скриптов, хотя у меня мало опыта с regexp. Примечание: мало.
По сути, я хочу передать все URL-адреса, кроме нескольких, в качестве аргументов index.php, переписав большинство URL-адресов, определенных как слагы в базе данных.
т.е.: / admin, / config, / images, / lib и / template существуют, но я не хочу, чтобы их переписывали.
Но все остальное я хочу передать в качестве аргументов index.php.
Я делаю это в настоящее время с:
url.rewrite-once = (
"^/(.*)$" => "/index.php?$1"
)
Прекрасно работает со слагами базы данных, но также перенаправляет папки, перечисленные выше. К ним относятся файлы, к которым требуется прямой доступ, но я нигде не могу найти описание того, как исключить строки из совпадения.
Как только я знаю, как это сделать, я могу понять все остальное, но, будучи новичком в регулярном выражении, я не знаю, с чего начать.
Любая помощь будет принята с благодарностью.
Edit:
С тех пор я дал им шанс:
"^/(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"
Переписывает все, включая папки, которые я не хочу переписывать.