对于例如以下是要重定向的URL
http://example.com/discussion/temp/?id=123
这里id
的值可以是任何整数。另请注意,我的域中没有像discussion
和temp
这样的路径/文件夹(但由于某些原因,在我进行另一次更新之前,我只需要使用此URL结构)。我想将上述网址重定向到以下网址 -
http://example.com/new_folder/edit.php?id=123
从类似问题的一些答案中,我发现 -
RewriteEngine on
RewriteCond %{QUERY_STRING} id=1
RewriteRule ^sub-dir/index\.php$ /path-to-new-location/? [L,R=301]
但是,我无法在我的情况下使用它,因为我无法弄清楚如何重定向实际上是变量的id
数字?
是否可以实现以下内容(使用动态id
) -
Redirect 301 /old-path/to-old-url /new-path/to-new-url
你应该寻找RewriteCond
directive,RewriteCond反向引用。
RewriteEngine on
RewriteBase /
RewriteCond %{QUERY_STRING} id=([0-9]+)
RewriteRule ^discussion/temp/$ /new_folder/edit.php?id=%1 [L,R=301]
它测试查询字符串是否有id={numeric characters}
,请求URI是discussion/temp/
,如果确实如此,则会永久重定向到/new_folder/edit.php?id={numeric characters}
。