这个当前系统需要允许句点(.
)可选地在重写条件内。
例如:/john.doe
应该有效,因为我们在用户名中允许使用句点。
但是,当我将.
或\\.
或[.]
添加到以下重写规则时,它会陷入无限循环,必须重新启动apache2。令人惊讶的是,行为发生了变化,我不知道为什么。现在它只是将新字符串附加到现有URL。
例如:/john.doe
将成为/john.doe/?pg=user&username=john.doe
RewriteRule ^/([a-z0-9_]+)$ /?pg=user&username=$1 [NC,PT]
我很想解决这个问题,请帮忙!
答案 0 :(得分:0)
这应该有用(我说“应该”因为我不知道你的整个系统是如何设置的以及其他重定向等等 - 我看到你正在使用PT
标志(也许你正在使用别名)):
RewriteCond %{REQUEST_URI} !^/index\.php
RewriteRule ^([a-z0-9_\.]+)$ /index.php?pg=user&username=$1 [NC,QSA,L]
OR
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-z0-9_\.]+)$ /index.php?pg=user&username=$1 [NC,QSA,L]
我已经直接指定了脚本文件 - 如果您知道它如何工作,编写规则要容易得多。