我需要获取路径的查询字符串末尾所有路径定义一个 url 变量
www.root.com/path1/path2/path3/page?id=15&do=post
我可以获取变量的所有路径,但无法获取查询字符串“id”和“do”
我的配置在这里
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
我需要获取路径的查询字符串末尾所有路径定义一个 url 变量
www.root.com/path1/path2/path3/page?id=15&do=post
我可以获取变量的所有路径,但无法获取查询字符串“id”和“do”
我的配置在这里
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
我希望您使用该
QSA
标志的实现能够按预期工作。一个简单的htaccess 测试器证实了这一点(请参阅底部的“新 url ...”)。所以你可能想调查为什么你的测试结果不同......不过,还有其他选择,您也可以主动捕获查询字符串。apache rewrite 模块的文档清楚地表明您需要一个
RewriteCond
来捕获请求的 URL 的查询字符串。这可能会为您指明正确的方向:
这将是一个简化版本:
或者甚至更简单,如果这对您来说足够了,因为您根本不必捕获查询字符串: