【问题标题】:Rewrite changing Url重写更改 URL
【发布时间】:2011-06-03 12:14:25
【问题描述】:

我想使用 apaches mod_rewrite 来重写我的网址。通常,我可以这样做,但我认为这是一个特例。页面上的内容取决于 url 参数,但也能够更改这些参数,从而获得新的内容无需刷新。然而,相同的参数总是会给出相同的结果。

我的网址目前如下所示:

http://example.com/#?div1=1&div2=5

我希望能够使用整洁、干净的网址,例如 http://example.com/nameofarticle。使用 mod_rewrite 是否会阻止更改“隐藏”在此类 url 下的参数?如果没有,我该如何使用 mod_rewrite 才能让我继续这样工作?

提前致谢!

【问题讨论】:

    标签: mod-rewrite


    【解决方案1】:

    我认为您在 RewriteRule 之前需要 RewriteCond %{QUERY_STRING}。比如:

    RewriteCond %{QUERY_STRING} div1=(.*)&
    

    然后,您可以使用 %1 访问 RewriteRule 中的括号内的值......就像您在 RewriteRule 本身中使用 $1 括号内的值一样。

    您可能还想查看RewriteRule 标志[QSA]。引用mod_rewrite 文档:

    • 'qsappend|QSA'(查询字符串追加)

    此标志强制重写引擎 追加查询字符串的一部分 替换字符串到现有的 字符串,而不是替换它。采用 当您想向其中添加更多数据时 通过重写规则查询字符串。

    【讨论】:

    • 能否提供一个结合使用这两个规则的示例?我以前没有使用过 RewriteCond。谢谢!
    • @Lg102 是的,你能告诉我你想从http://example.com/#?div1=1&div2=5http://example.com/nameofarticle的“路径”,那么我可能会想出一些办法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-18
    • 1970-01-01
    • 2017-03-13
    • 2013-02-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多