【问题标题】:post parameters to htaccess sef link将参数发布到 htaccess sef 链接
【发布时间】:2015-10-20 09:41:07
【问题描述】:

我有前任的网址:

 http://www.demo.com/a/abcd

我使用这个 htaccess 来发布这个 url 的值

RewriteRule ^a/(.*)$ /details.php?sef=$1 [L,NC]

但我需要将新参数发布到 url 例如:

 http://www.demo.com/a/abcd?id=123&qu=11

那么如何在不更改 URL 的情况下通过此 url 获取 idqu 变量值?

【问题讨论】:

  • 我看不出这里真的有问题吗?您可以只使用 $_GET['id']$_GET['qu'] 或者您的意思是:RewriteRule ^([A-Za-z0-9_-]+)/([A-Za-z0-9_-]+)/([A-Za-z0-9_-]+)/?$ process.php?width=$1&height=$2&third=$3 [QSA,L]所以您可以向 url 添加多个变量
  • 提供更多信息sef 包含什么? var_dump($_GET['sef'])
  • 是的,埃里克,感谢您的帮助。我用 [QSA,L] 解决了这个问题

标签: linux apache .htaccess mod-rewrite query-string


【解决方案1】:

来自Apache's docs on mod-rewrite

修改查询字符串

默认情况下,查询字符串原封不动地传递。你可以, 但是,在包含查询的替换字符串中创建 URL 字符串部分。只需在替换字符串中使用问号 表示应将以下文本重新注入 请求参数。当你想删除一个现有的查询字符串时,结束 仅带问号的替换字符串。新旧结合 查询字符串,使用[QSA] 标志。

由于您正在重写查询字符串,因此请使用QSA 标志:

RewriteRule ^a/(.*)$ /details.php?sef=$1 [NC,QSA,L]

【讨论】:

    猜你喜欢
    • 2013-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多