จะเปลี่ยนเส้นทาง root และ root ผ่าน htaccess ได้อย่างไร


53

ฉันต้องการเปลี่ยนเส้นทางเฉพาะรูทของฉันไปยัง URL อื่น แต่เก็บรักษาไดเรกทอรีย่อย / ทั้งหมดที่พวกเขาอยู่ (และเปลี่ยนเส้นทาง)

ตัวอย่าง:

mysite.com/1 เปลี่ยนเส้นทางไปยังที่ใดก็ได้ mysite.com/admin เปิดหน้าเว็บ

ฉันต้องการ mysite.com/ เพื่อเปลี่ยนเส้นทางไปยัง mysecondsite.com และมีเพียงการเปลี่ยนเส้นทาง 301 โดยใช้ htaccess

คำตอบ:


75

ลองสิ่งนี้:

RewriteEngine on
RewriteCond %{HTTP_HOST} mysite\.com [NC]
RewriteCond %{REQUEST_URI} ^/$
Rewriterule ^(.*)$ http://mysecondsite.com/ [L,R=301]

หากคุณไม่จำเป็นต้องตรวจสอบโดเมนเก่า (เช่นหากไดเรกทอรีที่คุณใช้. htaccess นั้นถูกใช้โดยโดเมนเก่าเท่านั้น) คุณสามารถลบบรรทัดที่สองได้


1
ในกรณีของฉันฉันต้องเปลี่ยนเส้นทางปริมาณการใช้ไปยัง mysite.com/ แต่ไม่ใช่ foo.mysite.com ดังนั้นจึงต้องเพิ่ม regex ไปยังบรรทัดที่ 2: RewriteCond %{HTTP_HOST} ^mysite\.com$ [NC]เพื่อให้แน่ใจว่าการจับคู่นั้นตรงกับโฮสต์แน่นอน
jaygooby

จะมีประสิทธิภาพมากกว่าในการตรวจสอบเส้นทาง URL ในRewriteRule รูปแบบ (ตามคำตอบของ @ DaveForgac) แทนที่จะใช้เงื่อนไขเพิ่มเติมเพื่อตรวจสอบREQUEST_URIตัวแปรเซิร์ฟเวอร์
MrWhite

38

หากคุณหมายความว่าคุณต้องการเปลี่ยนเส้นทาง "/" ไปยังโดเมนอื่นเท่านั้นสิ่งนี้จะทำงาน:

RewriteEngine on
RewriteRule ^$ http://www.example.com/ [R=301,L]

สิ่งนี้ตรงกับรูทของโดเมนโดยที่ไม่มีอะไรเลยดังนั้นจะเปลี่ยนเส้นทางชื่อโดเมนโดยไม่ระบุชื่อไฟล์


ความแตกต่างเล็กน้อยทำงานสำหรับฉัน เพิ่มที่ด้านล่างของ htaccess ของฉันหลังจากกฎอื่น ๆ ที่เรียกใช้ทั้งหมดฉันแค่ต้องการแสดงหน้าต้อนรับให้กับทุกคนที่เข้าเยี่ยมชมโดเมนรากของฉัน (ไม่มีโดเมนย่อยใด ๆ ): RewriteCond% {HTTP_HOST}! ^ (โดเมนย่อย 1 | โดเมนย่อย 2) \. mysite \ .com $ [NC] RewriteRule ^ $ /welcome.php [NC, L]
MarsAndBack

15

สิ่งนี้จะใช้ได้ดี:

RedirectMatch 301 ^/$ https://example.com/

2
นี่จะดีกว่า (สำหรับคำตอบที่มีอยู่) หากคุณยังไม่ได้ใช้ mod_rewrite สำหรับการเปลี่ยนเส้นทางอื่น ๆ
MrWhite

-3

ทางออกที่สั้นกว่า:

Redirect 301 / http://mysecondsite.com/

12
สิ่งนี้จะไม่ทำตามที่ jardel ต้องการ มันจะเปลี่ยนเส้นทางหน้าทั้งหมดมากกว่าแค่รูท
sharoz
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.