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

问题描述 投票:0回答:1

对于例如以下是要重定向的URL

http://example.com/discussion/temp/?id=123

这里id的值可以是任何整数。另请注意,我的域中没有像discussiontemp这样的路径/文件夹(但由于某些原因,在我进行另一次更新之前,我只需要使用此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

.htaccess redirect
1个回答
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}

© www.soinside.com 2019 - 2024. All rights reserved.