301 เปลี่ยนปลายทางจดหมายไปใหม่โดเมนกับบางระบุที่อยู่ url

0

คำถาม

ฉันเห็นคล้ายกันหัวข้อคุยแต่ไม่ได้เจองเผชิญหน้ากับความจริงต้องตอบปัญหาของฉัน

ฉันจะย้ายของฉันเก่าของเว็บไซต์ของเพื่อนใหม่หนึ่งและบางคนที่อยู่ url ที่กำลังเปลี่ยนแปลง

ฉันต้องการจะทำให้เป็นทั่วไป 301 เว็องอันใหม่ของโดเมน(เพราะคนส่วนใหญ่เป็นทางเดียวกัน)ระหว่างที่แยก redirecting บางที่อยู่ url.

นี่คือสิ่งที่ฉันต้องของเก่าของเว็บไซต์htaccess:

<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 redirects ไปยัง: https://new.com/custom/url แทนที่จะเป็น https://new.com/my-custom-url

บางอย่างของที่อยู่ url ที่ยังมีที่อยู่ 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 redirects ไปยัง: https://new.com/custom/url แทนที่จะเป็น https://new.com/my-custom-url

มันเป็นเพราะของคุณเฉพาะกฏเปลี่ยนปลายทางจดหมายปรากฏหลังจากทั่วไปหนึ่ง ยิ่งกว่านั้นคุณต้องใส่...รากของรูเบอ mod_rewrite กฎกับ mod_alias กฏแล้วพวกนี้เป็น invoked ที่ต่างออกครั้ง

มีมันเหมือนนี้:

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

มันเป็นงานขอบคุณ ผมมีอีกคำถามยังไงฉันสามารถเปลี่ยนปลายทางจดหมายที่อยู่ URL ของค่าพารามิเตอร์แยกกันแทนที่จะเป็นกฏทั่วไป? ตัวอย่างเช่น"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 ต้องเป็น redirected จะเป็นบุคคลหนึ่งที่อยู่ URL ได้ ฉันไม่แน่ใจว่ายังไงที่จะแก้ไขของตัวอย่างเช่นกว่านี้ละกัน brand.php?name=brand1 ต้องเป็น redirected ต้อง new.com/product-category/brand1 แล้ว brand.php?name=brand2 ต้องเป็น redirected ต้อง new.com/brand2 (สำหรับตัวอย่าง)
Malcom

นี่ /product-category/ เป็นเรื่องใหม่สำหรักเหนือจากนั่นไม่ใช่ปกป้องในดั้งเดิมสำคัญที่สุ. ปัจจุบันออกกฏก็คือทั่วไปดังนั้น brand.php?name=anything จะ redirected ต้อง new.com/anything. มีเฉพาะกรณีคุณสามารถ tweak ตัวเองโดยเปลี่ย: RewriteCond %{QUERY_STRING} ^name=([^&]+) [NC]
anubhava

เช็คของฉันอัพเดทตอบตอนนี้จะเจอระบุและทั่วไปเปลี่ยนปลายทางจดหมายนกฎ
anubhava

มันเป็นสมบูรณ์แบบขอบคุณมากสำหรับเวลาของคุณและคุณช่วย
Malcom

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

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

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่