我从数据库中检索菜单,其中一些菜单有撇号 - ' - 以他们的名字命名。 在我的代码的一部分中,我必须将数据库中的名称与url进行比较,但是当url有撇号时它会失败。
例如:
当我从db获取名称时,我得到它:foo's
但是来自网址,即使我这样做时网址为web.com?menu=foo's
:
$menu = urldecode($_GET['menu']);
我只获得foo
这是我的htaccess Rewrite
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
RewriteRule ^explore/([0-9a-zA-Z\ ]+) renderpage.php?menu=$1 [L]
我已经在我的php中尝试了所有可能的组合,不是这样,这个RewriteRule不允许撇号,我也试过([0-9a-zA-Z\ ']+)
在我的正则表达式和([0-9a-zA-Z\ \']+)
但无济于事。
答案 0 :(得分:0)
我认为问题出在撇号的位置试试这个:
([0-9a-zA-Z'\]+)
或
([0-9a-zA-Z']+)