ยกเว้นโดเมนเฉพาะจาก Apache2 serverAlias ​​ขณะที่ใช้ชื่อแทน all ((wildcard) แทน


10

ฉันมีเว็บแอปพลิเคชันที่ต้องการสนับสนุนโดเมนที่กำหนดเองในเรื่องนั้นฉันได้ตั้งค่าเซิร์ฟเวอร์เสมือนที่ใช้ชื่อต่อไปนี้:

<VirtualHost *:80>
    ServerName example.com
    ServerAlias * *.example.com www.example.com example.com
    RailsEnv production
    RackEnv production
    DocumentRoot /srv/www/example/current/public
    <Directory /srv/www/example/current/public>
             AllowOverride all
             Options -MultiViews FollowSymLinks
    </Directory>
    ErrorLog /srv/www/example/log/error.log
    TransferLog /srv/www/example/log/access.log
</VirtualHost>

สังเกตุ * ว่าเป็นนามแฝงของเซิร์ฟเวอร์หรือไม่ ที่จับโดเมนทั้งหมดบนเซิร์ฟเวอร์นั้น อย่างไรก็ตามฉันมีเว็บไซต์อื่น ๆ ในเซิร์ฟเวอร์นี้ซึ่งฉันต้องการแยกออกจากรายการนี้ มันประหยัดกว่าที่ฉันจะมีรายชื่อของโดเมนที่แยกออกไปกว่าตั้งค่าทุกโดเมนที่ผู้ใช้อาจลงทะเบียนด้วยบริการนี้เป็น serverAlias ​​...

บางทีนี่อาจไม่ใช่วิธีที่ดีที่สุด แต่ฉันกำลังมองหาความช่วยเหลือในวิธีที่ดีที่สุด (ค่อนข้างง่าย) ในการตั้งค่าแอปพลิเคชันเว็บที่อาจจับโดเมนใด ๆ ในขณะที่อนุญาตให้ส่งเฉพาะโดเมนอื่น ๆ.

คำตอบ:


12

Apache ค้นหาการจับคู่ตามลำดับที่มีการกำหนดโดเมน หากฉันเข้าใจปัญหาของคุณอย่างถูกต้องก็สามารถแก้ไขได้โดยกำหนดโฮสต์ของคุณให้แยกออกก่อนที่จะรับโฮสต์ทั้งหมด

<VirtualHost *:80>
    ServerName excluded.example.com
    ServerAlias  something.example.com ...
    ...
</VirtualHost>
<VirtualHost *:80>
    ServerName example.com
    ServerAlias * *.example.com www.example.com example.com
    RailsEnv production
    ...
</VirtualHost>

1
ใช่คุณพูดถูก แต่ฉันสับสนเกี่ยวกับวิธีการทำเช่นนี้ใน Ubuntu 10.4 สแต็คเริ่มต้นซึ่งทั้ง shenanigans ได้รับการจัดการโดยมีไดเรกทอรีที่มีไซต์และไดเรกทอรีที่เปิดใช้งานไซต์และคำจำกัดความโฮสต์เสมือนแต่ละรายการมีอยู่ในนั้น ไฟล์ ... ฉันจะควบคุมคำสั่งซื้อในกรณีนั้นได้อย่างไร
Victor S

ไฟล์ถูกโหลดตามลำดับตัวอักษร (ลำดับการเรียงเริ่มต้นสำหรับ ls)
user9517

1
สำหรับคำจำกัดความของไซต์ที่จำเป็นต้องมาก่อนให้ตั้งชื่อตามที่ต้องการ000-excluded.example.com.confในไซต์ที่พร้อมใช้งาน
Brian Minton

ฉันกำลังมองหาที่จะทำสิ่งเดียวกันและไม่ได้ผลสำหรับฉัน exclused.example.com VirtualHost ที่มี "ServerName แยกออกจากกันexample.com \ n Redirect / example.com/excluded " ทำให้การร้องขอทั้งหมดไปยัง VirtualHost ทั่วไปมากขึ้นเพื่อรับการเปลี่ยนเส้นทาง (ซึ่งแน่นอนตาม VirtualHost เฉพาะในการกำหนดค่า)
quuxman
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.