【问题标题】:Mod_rewrite and $_GET variablesMod_rewrite 和 $_GET 变量
【发布时间】:2010-12-02 16:58:54
【问题描述】:

如果我从以下位置修改 URL:

http://www.mysite.com/blog/this-is-my-title/1/

http://www.mysite.com/blog.php?title=this-is-my-title&id=1

...以后是否有可能在 URL 上任意附加一个 get 值,或者 mod_rewrite 是否会将其丢弃?

我的重写规则:

RewriteRule    ^blog/([A-Za-z]+)/(0-9]+)/?    blog?title=$1&id=$2     [L]

示例:

我可以去吗 http://www.mysite.com/blog/this-is-my-title/1/?first=Johnnie&last=Wiggles

这基本上意味着

http://www.mysite.com/blog.php?title=this-is-my-title&id=1&first=Johnnie&last=Wiggles

我认为这应该可行,但由于某种原因,目前不适合我。

【问题讨论】:

  • 不看你的 RewriteRule 就无法回答这个问题。

标签: php url mod-rewrite get


【解决方案1】:

可以使用 QSA(查询字符串附加)标志附加它。

RewriteEngine on
RewriteRule {from-url} {to-url} [L,NC,QSA]

【讨论】:

    【解决方案2】:

    您可以将 QSA 添加到 RewriteRule 标志:

    RewriteRule page_([0-9]+)\.html page.php?id=$1 [QSA]
    

    page_1.html?a=2 重定向到page.php?id=1&a=2

    但是,请小心,因为请求 page_1.html?id=2 将重定向到 page.php?id=1&id=2,并且(在 PHP 中)$_GET['id'] 将是 2。

    【讨论】:

    猜你喜欢
    • 2013-01-17
    • 1970-01-01
    • 2013-08-05
    • 2011-04-07
    • 2012-05-24
    • 2013-05-15
    • 1970-01-01
    • 1970-01-01
    • 2011-04-04
    相关资源
    最近更新 更多