我需要将此重定向到我的网络服务器:
www.hostname.com/path1/path2/123456789
到www.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]