我使用.htaccess规则成功地将旧表单中的几乎所有网址重新编写为精细网址。但我的一些地址格式存在问题
e.g example.com/myusername工作正常 而 example.com/my.username将返回未找到的404页面
注意:my.username是我的数据库中的有效用户名。请问我该如何解决这个问题
更新:这是.htaccess文件中的完整代码
# -FrontPage-
IndexIgnore .htaccess */.??* *~ *# */HEADER* */README* */_vti*
#ErrorDocument 404 example.com
RewriteEngine on
RewriteRule ^(.*)\.htm$ $1.php [nc]
RewriteRule ^([a-zA-z0-9_-]+)$ community/profile.php?_username=$1
答案 0 :(得分:2)
您的问题是您没有在此行的正则表达式中包含点(。)(因为my.username包含一个点):
RewriteRule ^([a-zA-z0-9_-]+)$ community/profile.php?_username=$1
将其更改为:
RewriteRule ^([a-zA-z0-9_.-]+)$ community/profile.php?_username=$1
请注意,您必须添加到正则表达式的用户名中的任何字符(现在它支持字母数字,下划线,短划线和点)。
答案 1 :(得分:0)
导致
RewriteRule ^(.*)\.htm$ $1.php [nc,L,QSA]
RewriteRule ^([a-zA-z0-9_.-]+)$ community/profile.php?_username=$1 [L,QSA]