apache - 如何调整此 URL 重写以正确处理“点”...?
问题描述
我正在使用以下 URL 重写规则:
#URL Rewriting
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([A-Za-z0-9-]+)/?$ index.php?username=$1 [L]
这对大多数帐户来说都很好,但是如果用户名中有一个点(例如User.Name
),那么我的重写失败并且页面不会加载。
解决方案
我相信您的正则表达式可以添加.
以在用户名中捕获它,所以像这样添加它。我在移动设备上我还没有测试它应该可以工作我相信。这也只是对 OP 尝试的代码的修复。添加了另一个条件来检查传递的查询字符串是否为空,以避免此处出现循环。
##URL Rewriting
RewriteEngine ON
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^([A-Za-z0-9-.]+)/?$ index.php?username=$1 [L]
推荐阅读
- mysql - 以下查询执行时间过长。如何优化它
- c# - 如何在项目安装过程中创建 postgresql 数据库?
- angular - 手动将值分配给 formgroup vs patchValue
- python - 匹配多列并添加到数据框
- service-worker - 保留预缓存,同时删除工作箱服务工作者中的其他缓存
- macos - 升级 macOS Catalina 10.15.3 后找不到 localhost - 无效命令“MultiviewsMatch”
- android - Firebase 依赖问题
- javascript - 从选择选项 HTML 中获取 JS 中的值
- azure - 处理多个 azure devops 管道
- apache-kafka - 如何将“授权:承载”传递给 kafka-avro-producer