首页 > 解决方案 > 如何调整此 URL 重写以正确处理“点”...?

问题描述

我正在使用以下 URL 重写规则:

#URL Rewriting
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([A-Za-z0-9-]+)/?$ index.php?username=$1 [L]

这对大多数帐户来说都很好,但是如果用户名中有一个点(例如User.Name),那么我的重写失败并且页面不会加载。

标签: apache.htaccessmod-rewriteurl-rewriting

解决方案


我相信您的正则表达式可以添加.以在用户名中捕获它,所以像这样添加它。我在移动设备上我还没有测试它应该可以工作我相信。这也只是对 OP 尝试的代码的修复。添加了另一个条件来检查传递的查询字符串是否为空,以避免此处出现循环。

##URL Rewriting
RewriteEngine ON
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^([A-Za-z0-9-.]+)/?$ index.php?username=$1 [L]

推荐阅读