Apache:用可变数据重写规则

Apache:用可变数据重写规则

我需要将此重定向到我的网络服务器:

www.hostname.com/path1/path2/123456789www.hostname.com/search?q=123456789

我已将此规则插入到 htaccess 文件中:

RewriteRule ^/path1/path2/([0-9]+)$ /search?q=$1 [L,R=301]

但它不起作用(数字是一个变量)。

答案1

在 .htaccess 文件中,不应有前导斜杠:“每个目录的前缀(对于特定目录始终相同)会自动删除以进行 RewriteRule 模式匹配,并自动添加在任何相对目录之后(不以斜杠或协议名称)替换”。

我不知道您的 .htaccess 位于哪个目录,但您应该删除该目录的前缀:

RewriteRule ^path1/path2/([0-9]+)$ /search?q=$1 [L,R=301]

… 或者 …

RewriteRule ^path2/([0-9]+)$ /search?q=$1 [L,R=301]

… 或者 …

RewriteRule ^([0-9]+)$ /search?q=$1 [L,R=301]

相关内容