如果我可以根据从URI确定的模式找到文件,我想使用mod_rewrite重定向到页面
要匹配的文件的路径
/path/to/dir/cat1_cat2_cat3
HTTP请求
http://example.com/cat1/cat2/cat3
mod_rewrite配置:
第-1行:用正则表达式提取cat1,cat2和cat3
第二行:尝试使用正则表达式变量来匹配文件
第3行:如果匹配成功重定向到页面
RewriteCond %{QUERY_STRING} ^/(.*)/(.*)/(.*)$
RewriteCond /path/to/dir/$1_$2_$3 -f
RewriteRule /some_page.html
由于某种原因,它不起作用。任何帮助表示赞赏。
答案 0 :(得分:2)
试试这个:
RewriteCond /path/to/dir/$1_$2_$3 -f
RewriteRule ^/(.*)/(.*)/(.*)$ /some_page.html
在 RewriteCond
看到mod_rewrite
匹配后,评估了RewriteRule
行,因此您可以在那里使用$N
值。
您的原始版本也可以使用,除了:您在QUERY_STRING
中与?
匹配,这是请求中REQUEST_URI
之后的部分 - 您可能意味着%N
;您应该使用RewriteCond
来引用上一个RewriteRule
;而你错过了{{1}}的模式部分。