【问题标题】:Mod Rewrite Help模组重写帮助
【发布时间】:2010-11-25 21:52:10
【问题描述】:

我对 Mod Rewrite 有一些基本的了解,但我想不通!

我想要

http://example.com/posts/[NAME]/~[ID]/#[PAGE]

并且能够像 $_GET['name']、$_GET['id'] 和 $_GET['page'] 一样获取它

NAME 是一个转义字符串,因此它允许 A-Za-z1-9 和特殊字符 ?_-! (并替换为 %20 等,任意数量的字符。

ID 是 a-zA-Z1-9,任意数量的字符。

PAGE 是一个数字,任意数量的字符。

另外,我现在正在尝试:[NAME]-[ID]/[PAGE]/ 但我不需要在这个中使用 $_GET['name']。

到目前为止,我只知道如何使用 ONE 变量进行 mod 重写。

提前致谢。

【问题讨论】:

    标签: php regex mod-rewrite


    【解决方案1】:

    [NAME]/~[ID]/#[PAGE]:

    RewriteEngine On
    RewriteRule ^posts/([^/]+)/\~([^/]+)/#(\d+)$ your_file.php?name=$1&id=$2&page=$3 [QSA,L]
    

    [NAME]-[ID]/[PAGE] 没有$_GET['name']

    RewriteEngine On
    RewriteRule ^posts/[^\-]+\-([^/]+)/(\d+)$ your_file.php?id=$1&page=$2 [QSA,L]
    

    【讨论】:

    • 好的,我有一个小问题。我现在正在尝试:[NAME]-[ID]/[PAGE]/ 但我不再需要 $_GET['name']。
    • 会不会像:^posts/([^/]+)/\-([^/]+)/([\d]+)/$ item.php?name=$1 &fight=$2&page=$3
    • 我能问一下 / 后面的 # 做什么以及 [QSA,L] 做什么吗?
    • 你为什么要逃避一个 - 两次?我理解第一个,但第二个似乎有错误?我错了吗?
    • QSA 可以用于多个规则,但L 在相关规则匹配后停止重写。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多