我正在从数据库中检索菜单,其中一些有一个撇号 - ' - 在他们的名字。 在我的代码的一部分,我必须将数据库中的名称与url进行比较,但当url有撇号时会失败。如何在htaccess RewriteRule正则表达式中允许撇号?
例如:
当我从数据库获取的名字,我得到它,因为它是:foo's
但是从网址,即使网址是web.com?menu=foo's
当我这样做:
$menu = urldecode($_GET['menu']);
我只得到foo
这是我的htaccess重写
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule^- [L]
RewriteRule ^explore/([0-9a-zA-Z\ ]+) renderpage.php?menu=$1 [L]
我试着在我的PHP所有可能的组合,这并不是说,正是这种重写规则不允许撇号,我还在我的正则表达式和([0-9a-zA-Z\ \']+)
但无济于事试图([0-9a-zA-Z\ ']+)
。
你只是尝试这个表达式'重写规则^探索/([^ /] +)' –
对不起,我睡着了,这正则表明我喜欢这个foo的 – Cr1xus
,但它很好,我会做一个str_replace,它已经足够好了 – Cr1xus