gpt4 book ai didi

.htaccess - 将页面从旧站点重定向到新站点 - 一个接一个

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:38:05 26 4
gpt4 key购买 nike

我正在尝试将来自多个旧域的页面逐页重定向到一个新域,即:

第 1 页:http://www.example.org/default.asp?id=1重定向到 http://www.example2.org/newpage.html第 2 页:http://www.example2.org/default.asp?id=2重定向到 http://www.example.org/contact.html

……等等。每个旧页面都会重定向到特定的新页面。

我试着按照 .htaccess 的方式写一些东西

Redirect 301 http://www.example.org/default.asp?id=1 h-tp://www.example.org/newpage.html
Redirect 301 http://www.example2.org/default.asp?id=2 h-tp://www.example.org/contact.html

但到目前为止还没有运气。 mod_alias 已启用...

我也试过像这样使用 RewriteCond 和 RewriteRule:

RewriteCond %{HTTP_HOST} example.org
RewriteRule default.asp?id=1 http://www.example.org/newpage.html [NC,L,R=301]
...

换句话说:我想进行逐页重定向,从基于 id 的页面重定向到基于别名的页面,同时将三个站点/域合并到一个站点中。

我希望有一个有用的解决方案。提前致谢!

最佳答案

Redirect指令仅适用于 URL path但不是 URL 的主机或查询。

但是 mod_rewrite 是可能的:

RewriteCond %{HTTP_HOST} =example.org
RewriteCond %{QUERY_STRING} =id=1
RewriteRule ^default\.asp$ http://www.example.org/newpage.html [NC,L,R=301]

如评论中所述,您可以使用 rewrite map对于 ID 到别名的映射:

1 foo-page
2 bar-page
3 baz-page

RewriteMap 声明(这里是一个简单的纯文本文件):

RewriteMap id-to-alias txt:/absolute/file/system/path/to/id-to-alias.txt

最后是应用程序:

RewriteCond %{HTTP_HOST} =example.org
RewriteCond %{QUERY_STRING} ^(([^&]*&)*)id=([0-9]+)&?([^&].*)?$
RewriteCond ${id-to-alias:%3}&%1%4 ^([^&]+)&(.*)
RewriteRule ^default\.asp$ http://www.example.org/%1.html?%2 [NC,L,R=301]

这也应该保留剩余的查询。如果你不想这样:

RewriteCond %{HTTP_HOST} =example.org
RewriteCond %{QUERY_STRING} ^(([^&]*&)*)id=([0-9]+)&?([^&].*)?$
RewriteCond ${id-to-alias:%3} .+
RewriteRule ^default\.asp$ http://www.example.org/%0.html? [NC,L,R=301]

关于.htaccess - 将页面从旧站点重定向到新站点 - 一个接一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1421419/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com