php问号和冒号组合,带有问号和&符号的mod_rewrite(使用PHP)

我有一个基于PHP的Web应用程序,我正在尝试将Apache的mod_rewrite应用于.

请注意,在重写页面名称时,我也有效地“移动”了问号.当我尝试这样做时,Apache愉快地执行这个翻译:

RewriteRule ^/([a-z]+)\?(.+)$/index.php?page=$1&$2 [NC,L]

但它弄乱了PHP中的$_GET变量.例如,调用http://example.com/home?x=88只会产生一个$_GET变量(page => home). x =>在哪里88去?但是,当我将规则更改为使用&符号而不是问号时:

RewriteRule ^/([a-z]+)&(.+)$/index.php?page=$1&$2 [NC,L]

像http://example.com/home\u0026amp;x=88这样的调用将像我期望的那样工作(即页面和x $_GET变量都设置得恰当).

我知道差别很小,但我希望我的URL变量能够“开始”带有问号,如果可能的话.我确信这反映了我自己对mod_rewrite重定向如何与PHP交互的误解,但似乎我应该能够做到这一点(这样或那样).

提前致谢!

干杯,

-克里斯

解决方法:

试试这个:.

RewriteCond %{REQUEST_URI} !^/index.php

RewriteRule ^/([a-z]+)(?:$|\?(?:.+)) /index.php?page=$1 [NC,L,B,QSA,NE]

B逃避反向引用(不应该是必要的,因为它匹配[a-z],但是如果你想稍后扩展它,它可能是有用的).

编辑:添加了RewriteCond.

编辑2:QSA负责添加&符号.

标签:php,query-string,mod-rewrite

来源: https://codeday.me/bug/20190526/1158924.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值