regex - 使用 arg + uri 进行 Htaccess 内部重写
问题描述
我正在尝试将 example.com/abc 内部重写为 example.com/?//abc,其中 'abc' 可以是任何字符串。
尝试了以下规则:
RewriteEngine On
RewriteRule ^(\w+)/?$ /?//$1 [L,QSA,NC,PT]
但是,这并没有按预期重定向。从日志中,我可以看到以下条目:
applying pattern '^(\\w+)/?$' to uri 'abc
rewrite 'abc' -> '/?//abc'
split uri=/?//abc -> uri=/, args=//abc
internal redirect with / [INTERNAL REDIRECT]
applying pattern '^(\\w+)/?$' to uri ''
不确定,为什么它会根据“?”将模式拆分为 uri 和 arg。任何人都可以帮助
解决方案
由于您的第二个示例有效,请删除该R
标志。它将重定向发送到浏览器。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{QUERY_STRING} "^$"
RewriteRule ^(.*)$ index.html?//$1/ [L]
推荐阅读
- python - 子类化一个列表并修改它的 append 方法
- apollo - 我们应该总是使用钩子还是可以直接从客户端调用它?
- c - C 或汇编中是否有可用的定点表示
- unity3d - Unity ARFoundation - 增强对象不记录碰撞
- mysql - 从 MySQL 中分组和连接表的特定行中选择数据
- faust - 浮士德。如何创建压缩主题
- sql - 使用 FILTER 对链接表值进行 SQL 条件聚合
- apache-flink - Flink keyBy 操作符直接进入 sink
- c++ - 如何使用 C++ 初始化向量;脚本值不是数组、指针或向量错误
- android - 如何在 react-native Android 应用程序中将调试器附加到发布版本的本机代码?