当我有一个特殊参数时,我想重定向/ RewriteRule一个Url 例如 /后/路径/?代码= 1 重定向到 /后/路径/
我不知道,但这里不起作用
RewriteEngine on
RewriteBase /
RewriteRule ^.*code=1.*$ /post/path/ [L]
如果我运行http://domain.com/post/path/?code=4/oWTYGaoOsyts 没有什么变化。
[REQUEST_URI] => /post/path/?code=1/oWTYGaoOsyts
[SCRIPT_NAME] => /index.php
[PHP_SELF] => /index.php
答案 0 :(得分:2)
要在网址中搜索参数,您需要使用RewriteCond和%{QUERY_STRING}:
RewriteCond %{QUERY_STRING} ^.*code=1.*$
RewriteRule .* /post/path/ [L]
语法:RewriteRule Pattern Substitution [flags]
在目录和 在htaccess上下文中,Pattern最初将与之匹配 文件系统路径,删除引导服务器的前缀后 当前的RewriteRule(例如" app1 / index.html"或" index.html"取决于 指定定义的位置)。
如果您希望与主机名,端口或查询字符串匹配,请使用 带有%{HTTP_HOST},%{SERVER_PORT}或。的RewriteCond %{QUERY_STRING}个变量。
答案 1 :(得分:0)
因为您正在搜索code=1
并且您通过了code=4
这应该适用于给定的输入
RewriteRule ^.*code=4.*$ /post/path/ [L]
请注意,它可以匹配code=40
或somecode=4