我正在使用 .htaccess 将我的网址从
www.mysite.com/profile.php?name=name
至
www.mysite.com/name/name
但是我遇到了一个问题,如果名称有空格而不是显示用户数据,它会将我带到 404 页面。我已经对名称进行了编码,这样如果有空格,它就会用 %20 替换它但它仍然不起作用.. 没有空格的名称就可以了
重写规则:
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ profile.php?name=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ profile.php?name=$1
最佳答案
查看您的重写规则。您有一个正则表达式,表示“一个或多个字母或数字”:
[a-zA-Z0-9_-]+
空格不是其中之一。这就是它不匹配的原因。将\s 添加到正则表达式:
[a-zA-Z0-9_-\s]+
关于php - .htaccess 简洁的 url,如果 $_GET 数据有空格,它会重定向到 404 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13223902/