我正在为我正在编写的几个 PHP 脚本编写一些我自己的规则,即使我对正则表达式几乎没有经验。注意:很少。
基本上,我想将除少数 URL 之外的所有 URL 作为参数传递给 index.php,重写大多数在数据库中定义为 slug 的 URL。
即:/admin、/config、/images、/lib 和/template 存在,但我不想被重写。但其他一切,我想作为参数传递给 index.php。
我目前正在这样做:
url.rewrite-once = (
"^/(.*)$" => "/index.php?$1"
)
它与数据库 slug 配合得很好,但它也重定向了上面列出的文件夹。这些包含需要直接访问的文件,但我找不到任何描述如何从匹配中排除字符串的地方。
一旦我知道如何做到这一点,我就可以弄清楚其余的,但是对于正则表达式的新手,我不知道从哪里开始。
任何帮助将不胜感激。
编辑: 我已经给了这些机会:
"^/(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"
重写所有内容,包括我不想重写的文件夹。