dskld5423 2015-11-20 04:05
浏览 43
已采纳

如何在htaccess RewriteRule正则表达式中允许撇号?

I'm retrieving menus from database and some of them have an apostrophe - ' - in their names. In a part of my code I have to compare the name from the database with the url, but it fails when the url has an apostrophe.

For example:

when I get the name from the db I get it as it is: foo's

but from the url, even if the url is web.com?menu=foo's when I do this:

$menu = urldecode($_GET['menu']);

I get only foo

this is my htaccess Rewrite

RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]

RewriteRule ^explore/([0-9a-zA-Z\ ]+) renderpage.php?menu=$1 [L]

I've tried all the possible combination in my php, it's not that, it is this RewriteRule that doesn't allow apostrophe, I've also tried ([0-9a-zA-Z\ ']+) in my regex and ([0-9a-zA-Z\ \']+) but to no avail.

  • 写回答

1条回答 默认 最新

  • duanhe6718 2015-11-20 04:24
    关注

    I think the issue is in the position of apostrophe Try this:

    ([0-9a-zA-Z'\]+)
    

    or

    ([0-9a-zA-Z']+)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器