Regex URL中的htaccess和符号
我有一个表格,每行代表一页。列Regex URL中的htaccess和符号,regex,.htaccess,url,url-rewriting,Regex,.htaccess,Url,Url Rewriting,我有一个表格,每行代表一页。列标题包含页面名称。加载页面时,原始url如下所示:www.mysite.com/?q=france,然后我快速查找数据库,其中title='france',就是这样。我现在使用htaccess使url更友好。像这样:RewriteRule^([a-zA-Z0-9%@\s\(\)\[\]\-]+)$page.php?q=$1,所以我可以使用www.mysite.com/france。我的问题是当标题有一个符号时,比如“一和二”。查找失败。我试过了 将\&添加到htac
标题
包含页面名称。加载页面时,原始url如下所示:www.mysite.com/?q=france
,然后我快速查找数据库,其中title='france'
,就是这样。我现在使用htaccess使url更友好。像这样:RewriteRule^([a-zA-Z0-9%@\s\(\)\[\]\-]+)$page.php?q=$1
,所以我可以使用www.mysite.com/france
。我的问题是当标题有一个符号时,比如“一和二”。查找失败。我试过了
\&
添加到htaccess,以及www.mysite.com/?q=1%26两个
都可以工作,但这两种方法都失败了
有什么方法可以让我用“干净”的URL来处理这个问题吗
蒂亚 有两件事:
%26
匹配,只想与&
匹配&
重新编码回%26
,因为它被放在查询字符串中,所以需要使用B
标志。比如说:
# Add a "&"----------------v
RewriteRule ^([a-zA-Z0-9#%@&\s\(\)\[\]\-]+)$ page.php?q=$1 [L,B]
# Include the "B" flag -------------------^
虽然我得到了答案,但我很好奇为什么这个问题被认为是离题的。我看了下面链接的常见问题,这个问题似乎在范围之内。如果有人告诉我问题出在哪里,我会很高兴地重写它…我看不出这怎么可能是离题的…@WouterJ让你的朋友知道:-)Phil我已经将它标记为“重新打开”,但我看到其他人将它标记为关闭。。。()你可以在meta.stackoverflow.com上创建一个问题,看看“硬核SO会员和MOD”是怎么想的。