apache virtualhost - localhost dan alias pengembangan/nama server

Saya mencoba mengonfigurasi file Apache vhosts saya agar memiliki nama host localhost/sesuatu dan nama host "alias". Saya sedang bekerja dengan google api dan mereka tidak menerima alias khusus sebagai url, jadi saya tidak bisa membuatnya berfungsi dengan url khusus saya. Ada pemikiran tentang apa yang harus dilakukan? Konfigurasi saya saat ini yang tidak berfungsi:

<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>

Saat saya mencoba mengakses 127.0.0.1/go atau localhost/go saya mendapatkan kesalahan server internal.


person PaaPs    schedule 10.09.2018    source sumber
comment
ServerName adalah alamat IP atau nama host, bukan jalur. Lihat https://httpd.apache.org/docs/2.4/mod/core.html#servername. Anda tidak dapat memasukkan / pada nama host.   -  person Chris Lear    schedule 10.09.2018
comment
maaf, di mana saya harus menentukan nama host? Maksudmu Nama Server?   -  person PaaPs    schedule 10.09.2018
comment
Ya, Nama Server harus berupa alamat IP atau nama host.   -  person Chris Lear    schedule 10.09.2018
comment
Oke. Itu tidak membantu mengatasi masalah ini   -  person PaaPs    schedule 10.09.2018
comment
Apakah masalah yang Anda alami adalah kesalahan server internal? Bisakah Anda menemukan teks kesalahannya dan membagikannya di sini? (Hampir pasti akan ada di log kesalahan server)   -  person Chris Lear    schedule 10.09.2018
comment
[Senin 10 Sep 16:56:31.401340 2018] [core:error] [pid 10324:tid 1996] [client 127.0.0.1:61779] AH00124: Permintaan melebihi batas 10 pengalihan internal karena kemungkinan kesalahan konfigurasi. Gunakan 'LimitInternalRecursion' untuk meningkatkan batas jika perlu. Gunakan 'LogLevel debug' untuk mendapatkan penelusuran balik., referensi: 127.0.0.1/go   -  person PaaPs    schedule 10.09.2018
comment
pada dasarnya adalah loop pengalihan   -  person PaaPs    schedule 10.09.2018


Jawaban (2)


Mungkin yang Anda inginkan adalah sesuatu seperti ini

<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>

Kemudian gunakan url seperti http://localhost/go untuk melihat situs tersebut.

person Chris Lear    schedule 10.09.2018
comment
tidak membantu di sini. Saya ingin KEDUA localhost, dan serveralias seperti server.dev - person PaaPs; 10.09.2018
comment
Oke, ada tipe di contoh Anda, saya tidak memeriksa ulang documentroot, komanya hilang. Ini berhasil, terima kasih. (walaupun hanya berfungsi sebagai 127.0.0.1, tapi tetap saja.. :)) - person PaaPs; 10.09.2018
comment
Maaf tentang kesalahan ketik. Saya sudah memperbaikinya. - person Chris Lear; 10.09.2018
comment
Saya juga menambahkan baris ServerAlias, yang seharusnya membuat http://server.dev/go berfungsi (dengan asumsi server.dev memutuskan ke 127.0.0.1) - person Chris Lear; 10.09.2018

Tergantung pada OS/browser Anda, Anda mungkin dapat menambahkan subdomain pengembangan ke localhost. Misalnya.

<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>

Saya kemudian mengarahkan browser saya ke dev1.localhost dan itu diselesaikan ke dev1 dan juga untuk dev2.localhost dan localhost dengan sendirinya diselesaikan ke halaman apache default.

Ini menyelesaikan masalah saya yang serupa. Diuji pada Apache di Debian WSL. Bekerja di Windows Chrome, gagal di Windows Firefox. Berdasarkan SO ini: https://stackoverflow.com/a/35124491

person Aaron    schedule 30.11.2020