apache virtualhost - localhost และนามแฝงการพัฒนา / ชื่อเซิร์ฟเวอร์

ฉันกำลังพยายามกำหนดค่าไฟล์ apache vhosts ของฉันให้มีชื่อโฮสต์ในเครื่องหรือชื่อโฮสต์ "นามแฝง" ฉันกำลังทำงานกับ Google API ในปัจจุบันและพวกเขาไม่ยอมรับนามแฝงที่กำหนดเองเป็น url ดังนั้นฉันจึงไม่สามารถทำให้มันทำงานกับ URL ที่กำหนดเองของฉันได้ มีความคิดที่จะทำอะไร? การกำหนดค่าปัจจุบันของฉันที่ไม่ทำงาน:

<VirtualHost 127.0.0.1:80>
    ServerName localhost/go
    ServerAlias localhost/go
    DocumentRoot "D:/username/Web/server.dev/go"
</VirtualHost>

<Directory "D:/username/Web/">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride all
        Order Deny,Allow
        Allow from all
        Require all granted
</Directory>

<VirtualHost *:80>
    ServerName api.server.dev
    ServerAlias api.server.dev
    DocumentRoot "D:/username/Web/server.dev/api"
</VirtualHost>

##... more custom urls with subdomains cut out because it's unnecessary

<VirtualHost *:80>
    ServerName adstrck.server.dev
    DocumentRoot "D:/username/Web/server.dev/adstrck"
</VirtualHost>

### ALL OTHERS ###

<VirtualHost *:80>
    ServerName www.server.dev
    ServerAlias server.dev *.server.dev
    DocumentRoot D:/username/Web/server.dev
</VirtualHost>

เมื่อฉันพยายามเข้าถึง 127.0.0.1/go หรือ localhost/go ฉันได้รับข้อผิดพลาดเซิร์ฟเวอร์ภายใน


person PaaPs    schedule 10.09.2018    source แหล่งที่มา
comment
ชื่อเซิร์ฟเวอร์คือที่อยู่ IP หรือชื่อโฮสต์ ไม่ใช่เส้นทาง ดู https://httpd.apache.org/docs/2.4/mod/core.html#servername. คุณไม่สามารถใส่ / ในชื่อโฮสต์ได้   -  person Chris Lear    schedule 10.09.2018
comment
ขอโทษที ฉันจะระบุชื่อโฮสต์ได้ที่ไหน? คุณหมายถึงชื่อเซิร์ฟเวอร์ใช่ไหม?   -  person PaaPs    schedule 10.09.2018
comment
ใช่ ServerName ต้องเป็นที่อยู่ IP หรือชื่อโฮสต์   -  person Chris Lear    schedule 10.09.2018
comment
ตกลง. นั่นไม่ได้ช่วยในเรื่องนั้นเลย   -  person PaaPs    schedule 10.09.2018
comment
เป็นปัญหาที่คุณได้รับข้อผิดพลาดเซิร์ฟเวอร์ภายในหรือไม่ คุณสามารถค้นหาข้อความของข้อผิดพลาดและแบ่งปันได้ที่นี่หรือไม่ (เกือบจะอยู่ในบันทึกข้อผิดพลาดของเซิร์ฟเวอร์อย่างแน่นอน)   -  person Chris Lear    schedule 10.09.2018
comment
[จันทร์ที่ 10 กันยายน 16:56:31.401340 2018] [core:error] [pid 10324:tid 1996] [client 127.0.0.1:61779] AH00124: คำขอเกินขีดจำกัดของการเปลี่ยนเส้นทางภายใน 10 ครั้งเนื่องจากข้อผิดพลาดในการกำหนดค่าที่น่าจะเป็นไปได้ ใช้ 'LimitInternalRecursion' เพื่อเพิ่มขีดจำกัดหากจำเป็น ใช้ 'การแก้ไขข้อบกพร่องของ LogLevel' เพื่อรับการติดตามย้อนกลับ ผู้อ้างอิง: 127.0.0.1/go   -  person PaaPs    schedule 10.09.2018
comment
โดยพื้นฐานแล้วเป็นการวนซ้ำการเปลี่ยนเส้นทาง   -  person PaaPs    schedule 10.09.2018


คำตอบ (2)


บางทีสิ่งที่คุณต้องการอาจเป็นแบบนี้

<VirtualHost 127.0.0.1:80>
    ServerName localhost
    ServerAlias server.dev *.server.dev
    DocumentRoot "D:/username/Web/server.dev"
</VirtualHost>

<Directory "D:/username/Web/server.dev">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride all
        Order Deny,Allow
        Allow from all
        Require all granted
</Directory>

จากนั้นใช้ URL เช่น http://localhost/go เพื่อดูไซต์

person Chris Lear    schedule 10.09.2018
comment
ไม่ได้ช่วยที่นี่ ฉันต้องการทั้ง localhost และ serveralias เช่น server.dev - person PaaPs; 10.09.2018
comment
ตกลง มีประเภทหนึ่งในตัวอย่างของคุณ ฉันไม่ได้ตรวจสอบ documentroot อีกครั้ง แต่ไม่มีเครื่องหมายจุลภาค มันได้ผล ขอบคุณ (แม้ว่าจะใช้งานได้เพียง 127.0.0.1 แต่ยังคง .. :)) - person PaaPs; 10.09.2018
comment
ขออภัยเกี่ยวกับการพิมพ์ผิด ฉันแก้ไขมันแล้ว - person Chris Lear; 10.09.2018
comment
ฉันยังได้เพิ่มบรรทัด ServerAlias ซึ่งควรทำให้ http://server.dev/go ใช้งานได้ (สมมติว่า server.dev แก้ไขเป็น 127.0.0.1) - person Chris Lear; 10.09.2018

คุณอาจสามารถเพิ่มโดเมนย่อยการพัฒนาให้กับ localhost ได้ ทั้งนี้ขึ้นอยู่กับระบบปฏิบัติการ/เบราว์เซอร์ของคุณ เช่น.

<VirtualHost *:80>
  ServerName dev1.localhost
  ## rest of your config
  ## e.g. ServerAlias my.website.on.the.internet.com
  DocumentRoot /var/www/dev1
</VirtualHost>

<VirtualHost *:80>
  ServerName dev2.localhost
  DocumentRoot /var/www/dev2
</VirtualHost>

# Default / catch-all
<VirtualHost *:80>
  DocumentRoot /var/www/html
</VirtualHost>

จากนั้นฉันก็ชี้เบราว์เซอร์ของฉันไปที่ dev1.localhost และนั่นแก้ไขเป็น dev1 และเช่นเดียวกันสำหรับ dev2.localhost และ localhost ด้วยตัวเองแก้ไขเป็นหน้า apache เริ่มต้น

วิธีนี้ช่วยแก้ไขปัญหาที่คล้ายกันของฉัน ทดสอบบน Apache ใน Debian WSL ทำงานบน Windows Chrome ล้มเหลวบน Windows Firefox อิงตาม SO นี้: https://stackoverflow.com/a/35124491

person Aaron    schedule 30.11.2020