สิ่งนี้จะเปลี่ยน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 แบบเต็มons
s
RewriteRule
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]