สิ่งนี้จะเปลี่ยนdomain.comเป็นwww.domain.com:
# Force the "www."
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
ฉันจะแทนที่ส่วน "โดเมน" เพื่อให้ทำงานกับโดเมนใด ๆ ได้อย่างไร
สิ่งนี้จะเปลี่ยนdomain.comเป็นwww.domain.com:
# Force the "www."
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
ฉันจะแทนที่ส่วน "โดเมน" เพื่อให้ทำงานกับโดเมนใด ๆ ได้อย่างไร
คำตอบ:
ฉันจะใช้กฎนี้:
RewriteEngine On
RewriteCond %{HTTP_HOST} !=""
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
เงื่อนไขแรกตรวจสอบว่าค่าโฮสต์ไม่ว่างเปล่า (ในกรณี HTTP / 1.0) ครั้งที่สองตรวจสอบว่าค่าโฮสต์ไม่ได้ขึ้นต้นด้วยwww.หรือไม่ ตรวจสอบที่สามสำหรับ HTTPS ( %{HTTPS}อย่างใดอย่างหนึ่งonหรือoffเพื่อให้%{HTTPS}sเป็นอย่างใดอย่างหนึ่งonsหรือoffsและในกรณีของจะถูกจับคู่) ส่วนการแทนที่จากนั้นจะรวมส่วนข้อมูลเข้ากับ URL แบบเต็มonssRewriteRule
RewriteEngine Onเป็นบรรทัดแรกเพื่อทำให้เสร็จสมบูรณ์เนื่องจากอาจทำให้เกิดข้อผิดพลาด 500 เซิร์ฟเวอร์หากคัดลอกวางตามที่เป็นอยู่
สิ่งนี้จะทำ:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
หากคุณต้องการเปลี่ยนเส้นทางคำขอที่ไม่ใช่ www ทั้งหมดไปยังไซต์ของคุณไปยังเวอร์ชัน www สิ่งที่คุณต้องทำคือเพิ่มโค้ดต่อไปนี้ในไฟล์. htaccess ของคุณ:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
สิ่งนี้ใช้ไม่ได้กับโดเมนย่อย
domain.com ถูกเปลี่ยนเส้นทางไปยัง www.domain.com
แต่
images.domain.com จะเปลี่ยนเส้นทางไปที่ www.images.domain.com
แทนที่จะตรวจสอบว่าโดเมนย่อย "ไม่ใช่ www" ให้ตรวจสอบว่ามีจุดสองจุดหรือไม่:
RewriteCond %{HTTP_HOST} ^(.*)$ [NC]
RewriteCond %{HTTP_HOST} !^(.*)\.(.*)\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ HTTP%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTP_HOST} !^(.*)\.(.*)\.(.*)\. [NC](พูดอย่างเคร่งครัด TLD ของคุณยังคงอยู่.ukและโดเมนของคุณคือsomething.co)
ต่อไปนี้ควรนำหน้า 'www' ไปยังคำขอใด ๆ ที่ไม่มีและเปลี่ยนเส้นทางคำขอที่แก้ไขไปยัง URI ใหม่
RewriteCond "%{HTTP_HOST}" "!^www\." [NC]
RewriteCond "%{HTTP_HOST}" "(.*)"
RewriteRule "(.*)" "http://www.%1$1" [R=301,L]
RewriteEngine On
RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [NE,L,R=301]
สิ่งนี้เปลี่ยนเส้นทางexample.comไปยังการwww.example.comยกเว้นโดเมนย่อย
สิ่งนี้ได้ผลเหมือนเวทมนตร์สำหรับฉัน
RewriteCond% {HTTP_HOST} ^ sitename.com [NC] RewriteRule ^ (. *) $ https://www.sitename.com/ $ 1 [L, R = 301, NC]
RewriteCond %{HTTP_HOST} ^yourdomain.com [NC]