繁体   English   中英

(LigHTTPd) RegExp 重写规则

[英](LigHTTPd) RegExp Rewrite Rules

我正在为我正在编写的一些 PHP 脚本编写一些我自己的规则,即使我对正则表达式几乎没有经验。 注意:很少。

基本上,我想将除 arguments 之外的所有 URL 传递给 index.php,重写大多数在数据库中定义为 slug 的 URL。

即:/admin、/config、/images、/lib 和/template 存在,但我不想被重写。 但其他一切,我想作为 arguments 传递给 index.php。

我目前正在这样做:

url.rewrite-once = (
    "^/(.*)$" => "/index.php?$1"
)

它与数据库 slug 配合得很好,但它也重定向了上面列出的文件夹。 这些包含需要直接访问的文件,但我找不到任何描述如何从匹配中排除字符串的地方。

一旦我知道如何做到这一点,我就可以找出 rest,但是对于 regexp,我不知道从哪里开始。

任何帮助将不胜感激。

编辑:我已经给了这些机会:

"^/(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"

重写所有内容,包括我不想重写的文件夹。

我似乎已经通过以下表达式实现了我正在寻找的东西:

"^/(?!(index\.php|admin|config|images|lib|template)).*$" => "/index.php?$0"

然后我只是

trim( $_SERVER['argv'] ,"/")

在 index.php 中获取 slug。

尝试这个:

url.rewrite-once = (
    "^/(index\.php|admin|config|images|lib|template)" => "$0",
    "^/(.*)$" => "/index.php?$1"
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM