.htaccess将带有$ _GET ['id']的单个特定URL重定向到同一域上的新URL

时间:2017-12-20 19:59:42

标签: .htaccess redirect

例如以下是要重定向的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

1 个答案:

答案 0 :(得分:0)

您应该查找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}