Перенаправить корень подпапки в WAMP

В настоящее время у меня есть сервер WAMP с двумя подпапками, одна из которых содержит проект Laravel с общей папкой.

Я не хочу создавать файл .htaccess для перенаправления с /laravel на /laravel/public.

Вместо этого я хочу изменить перенаправление в файле vhost из Apache. Я знаю, как перенаправить корневую папку WAMP (www) в общую папку Laravel, но я хочу:

  • Всякий раз, когда я захожу в корень WAMP, я все равно вижу список с папками, как обычно.

  • Когда я перехожу в каталог /laravel, он автоматически перенаправляется на /laravel/public.

Вот как у меня он сейчас есть в файле httpd-vhosts.conf.

Перенаправить корень подпапки в WAMP

Но это, похоже, не работает для меня, и когда я меняю место этих двух, я автоматически отправляюсь в общую папку в без возможности просмотра папки www.

Я уже пытался погуглить, но в итоге выяснил, как перенаправить корень www в подпапку.

Итак, мой вопрос: как перенаправить корень подпапки в общедоступную папку?

Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
1
0
1 002
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы назвали оба своих виртуальных хоста localhost, что не относится к виртуальному хосту. Измените VH проектов laravel следующим образом

<VirualHost *:80>
    ServerName laravel.test
    ServerAlias www.laravel.test

    . . . Leave other code as you had it

</VirtualHost>

Теперь перейдите в свой HOST-файл и добавьте доменное имя laravel.test вот так

редактировать C:\Windows\System32\drivers\etc\hosts

Это должно выглядеть так

127.0.0.1 localhost 
127.0.0.1 laravel.test

::1 localhost 
::1 laravel.test

Затем перезапустите dnscache или перезагрузите.

>net stop dnscache
>net start dnscache

NOTE: You shoudl never make localhost available to the internet so change this line back to what it was originally in the localhost VH definition

Require local

Also unless you actually want to make the laravel project availaibe on the internet do the same for that VH or if you want to make it available on your internal network set the Require like this

Require ip 192.168.1

Предполагая, что ваша подсеть начинается с 192.168.1, ваша может быть другой!

Я разместил Require ip 192.168.0 в VH localhost, и теперь я не могу войти в localhost на своем ПК. Однако я могу ввести его с помощью устройства в той же сети. Мой локальный IP-адрес моего ПК - 192.168.0.105. Вход в laravel.test работает отлично! Спасибо за это @RiggsFolly

ArchBacon 16.04.2018 11:53

localhost VH должен быть Require local. Не рекомендуется обращаться к нему из любого другого места, поскольку все, что он делает, имеет тенденцию ссылаться на localhost и, следовательно, не будет работать при запуске с другого ПК, поскольку localhost всегда означает этот ПК, и ссылки будут пытаться искать на другом ПК для код, который, конечно, не существует на клиентском ПК

RiggsFolly 16.04.2018 12:49

Хорошо. Теперь я могу войти в папку laravel, перейдя на laravel.test в качестве веб-адреса. Но я не знаю, как я могу увидеть этот проект с других устройств, то есть с моего телефона. У меня нет необходимости получать доступ к отдельным файлам. Но я хочу использовать проект как API. Есть ли какие-либо другие настройки, которые мне нужно изменить для этого, потому что, когда я перехожу на свой URL-адрес "API", я не получаю разрешения, потому что он перенаправляет на localhost (который использует Require local. Извините, если это глупый вопрос @RiggsFolly

ArchBacon 16.04.2018 23:58

Здесь мое решение этой проблемы взгляните на это и посмотрите, поможет ли это

RiggsFolly 17.04.2018 01:35

Работает как шарм! Большое спасибо за помощь @RiggsFolly

ArchBacon 17.04.2018 19:21

У меня недостаточно репутации для этого: /

ArchBacon 18.04.2018 11:32

Другие вопросы по теме