1

我有一个 .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。

有什么方法可以复制吗?

4

1 回答 1

1

有 2 条单独的规则,如下所示:

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]
于 2013-07-17T14:25:40.710 回答