301重定向到新的领域的一些具体网址

0

的问题

我看到了类似的主题,但没有找到一个实际的回答我的问题。

我移动了我的旧网站的一个新的和一些网址正在发生变化。

我想作一个通用的301重定向到新的领域(因为大多数道路是相同),同时单独向一些网址。

这里是我有在我的旧的网站。要:

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{HTTP_HOST} ^old\.com$ [OR]
  RewriteCond %{HTTP_HOST} ^www\.old\.com$
  RewriteRule (.*)$ https://new.com/$1 [R=301,L]

  Redirect 301 "/custom/url/" "https://new.com/my-custom-url"
</IfModule>

但301重定向到: https://new.com/custom/url 而不是的 https://new.com/my-custom-url

我的一些网址也有网址参数我要重新定向,如:

Redirect 301 "/brand.php?name=Example" "https://new.com/Example"
Redirect 301 "/brand.php?name=Example2" "https://new.com/another/url"

这似乎不到工作。

非常感谢你的帮助。

.htaccess redirect seo
2021-11-22 19:48:11
1

最好的答案

2

但301重定向到: https://new.com/custom/url 而不是的 https://new.com/my-custom-url

那是因为你重新定向特定的规则之后出现的通用的一种。 而且你是混合mod_rewrite规则与mod_alias规则和这些都是援引在不同的时间。

有这样的:

RewriteEngine On

# redirect /brand.php?name=Example2 to new.com/another/Example2
RewriteCond %{HTTP_HOST} ^(www\.)?old\.com$ [NC]
RewriteCond %{QUERY_STRING} ^name=(Example2) [NC]
RewriteRule ^brand\.php$ https://new.com/another/%1? [R=301,L,NE]

# redirect /brand.php?name=Example3 to new.com/category/Example3
RewriteCond %{HTTP_HOST} ^(www\.)?old\.com$ [NC]
RewriteCond %{QUERY_STRING} ^name=(Example3) [NC]
RewriteRule ^brand\.php$ https://new.com/category/%1? [R=301,L,NE]

# generic redirect /brand.php?name=Example to new.com/Example2
RewriteCond %{HTTP_HOST} ^(www\.)?old\.com$ [NC]
RewriteCond %{QUERY_STRING} ^name=([^&]+) [NC]
RewriteRule ^brand\.php$ https://new.com/%1? [R=301,L,NE]

# redirect custom URL
RewriteRule ^custom/url/ https://new.com/my-custom-url [R=301,L,NE,NC]

# redirect everything else
RewriteCond %{HTTP_HOST} ^(www\.)?old\.com$ [NC]
RewriteRule ^ https://new.com%{REQUEST_URI} [R=301,L]
2021-11-23 19:38:59

它的工作,谢谢你。 我还有一个问题:我怎么能向该网址参数独立,而不是一个通用的规则吗? 例如,"old.com/brand.php?name=Example"到"new.com/brand/example"和"old.com/brand.php?name=Example2"到"new.com/example2"?
Malcom

我很抱歉,我不知道怎么用这个。 我试过: RewriteCond %{THE_REQUEST} /brand\.php\?name=([mybrandname) [NC] RewriteRule ^ https://new.com/brands/mybrandname [R=301,L,NE] 其返回500错误
Malcom

也许我不够清晰,但每 brand.php?name=something 必须重新指向一个单独的网址。 我不知道该如何编辑例相应。 brand.php?name=brand1 必须重定向到 new.com/product-category/brand1brand.php?name=brand2 必须重定向到 new.com/brand2 (例如)
Malcom

/product-category/ 是新加的,并不涵盖在原来的要求。 目前的规则是通用的,所以 brand.php?name=anything 将重定向到 new.com/anything. 任何特定情况下你可以调整自己,改变: RewriteCond %{QUERY_STRING} ^name=([^&]+) [NC]
anubhava

看看我的新答案,现在要看到具体的和一般的重新定向的规则
anubhava

它是完美的,非常感谢您的时间和你的帮助。
Malcom

其他语言

此页面有其他语言版本

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................