我设置了一个.htaccess,其中包含以下内容:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-zA-Z0-9_-]+)/?$ profile.php?aid=$1 [L,QSA]
这可以很好地获取用户个人资料,但是如果他们的用户名是“apple& pears”,我会找不到404页面。我相信这是由于&符号的一些编码问题。我研究过并发现B标志可以解决这个问题,但是当引入它时我的主机的Apache版本低于2.2.7。
有没有方法可以复制这个?
答案 0 :(得分:1)
有两个单独的规则:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^&]+)&([^/]+)/?$ /index.php?aid=$1\%26$2 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ /index.php?aid=$1 [L,QSA]