我有以下重写规则
RewriteRule ^/product/([^/]*)/([^/]*)/([^/]*)/([^/]*)/((test_data|data_test)/)?([^/]*)$ /product/?query_one=$1&query_two=$2&query_three=$3&query_four=$4&file_path=$6/$7
在上一个file_path
的值中,我正在组合$6/$7
。
如果$6
没有价值,那么file_path
只能是$7
吗?我不希望/
id $6
为None。简单地说,我想把条件放在这一部分。
修改
https://example.com/product/one/two/three/four/test_data/file.jar
要
此网址存在问题
https://example.com/product/one/two/three/four/test_file.xml
请建议?
谢谢!
答案 0 :(得分:0)
看起来你只需要简化你的匹配模式。以下是我的工作:
RewriteRule ^/?product/([^/]*)/([^/]*)/([^/]*)/([^/]*)/(.*?)/?$ /product/?query_one=$1&query_two=$2&query_three=$3&query_four=$4&file_path=$5 [L,QSA,NC]
或者,如果您想确保dir仅为(test_data|data_test)
,请使用:
RewriteRule ^/?product/([^/]*)/([^/]*)/([^/]*)/([^/]*)/((?:(?:test_data|data_test)/)?.*?)/?$ /product/?query_one=$1&query_two=$2&query_three=$3&query_four=$4&file_path=$5 [L,QSA,NC]