ВАМПИР - Удалить локальный хост из URL-адреса проекта


URL-адреса моих проектов в WAMP не разрешаются так, как я ожидал. Например, я бы ожидал, что проект в папке c:\wamp\www\project1 чтобы иметь URL-адрес http://project1 /, но на самом деле у него есть URL http://localhost/project1/.

Это может вызвать проблемы при доступе к переменным сервера. Как мне это исправить?

Author: Sinister Beard, 2014-05-09

14 answers

Вы также можете посмотреть на этот ответ , особенно если вы сейчас используете WampServer 3 или выше, для простого clikc и перехода к созданию виртуальных хостов.

На самом деле это изменение было задумано разработчиками WampServer и по уважительной причине.

Существует проблема с использованием URL-адреса localhost/project1 и корневого каталога документов WampServer по умолчанию, поскольку это вызывает проблемы для некоторых фреймворков и сред типа WordPress, а также вашего собственного кода, если вы используете код, который зависит от знания чего-либо о серверной среде.

Правильное решение - создать виртуальные хосты для всех ваших проектов, даже для тех, которые вы храните в папках стиля \wamp\www\project1.

При этом корень документа равен \wamp\www, и именно это вызывает эти проблемы.

Эти инструменты ожидают, что DocumentRoot будет корнем сайта, т.Е. \wamp\www\project1, поэтому, когда они используют переменные PHP, такие как

$_SERVER['HTTP_HOST']
$_SERVER['SERVER_NAME']
$_SERVER['DOCUMENT_ROOT']

Они получают правильный ответ, т.е. ответ они попадут на настоящий живой сервер, на котором размещен только этот сайт.

Таким образом, использование URL-адреса стиля localhost\project1 будет означать, что эти переменные вернут

$_SERVER['HTTP_HOST'] = localhost
$_SERVER['SERVER_NAME'] = localhost
$_SERVER['DOCUMENT_ROOT'] = C:/wamp/www

Когда они должны вернуться

$_SERVER['HTTP_HOST'] = project1
$_SERVER['SERVER_NAME'] = project1
$_SERVER['DOCUMENT_ROOT'] = C:/wamp/www/project1

Итак, что вам следует сделать, чтобы меню My Projects работало и уменьшало ваши трудности при копировании сайтов на живые серверы:

Создайте запись в файле HOSTS для каждого проекта подобным образом и не забудьте создать запись для доступа по IPV4 (127.0.0.1) и запись для доступа по IPV6 (::1):-

127.0.0.1 localhost
127.0.0.1 project1

::1 localhost
::1 project1

Не забудьте обновить кэш DNS Windows после любого изменения этого файла следующим образом: -

Запустите окно командной строки с помощью Run as Administrator и выполните:-

net stop Dnscache
net start Dnscache

Теперь вам необходимо создать определение виртуального хоста, поэтому отредактируйте файл \wamp\bin\apache\apache2.4.9\conf\extra\httpd-vhost.conf (версии apache могут отличаться)

Удалите все, что там по умолчанию, в первый раз, когда вы это сделаете. А затем создайте определения виртуальных хостов следующим образом:-

#
# Use name-based virtual hosting.
# This next line is not required if you are using Apache 2.4.x and should be deleted
NameVirtualHost *:80

## should be first so the wamp menu page loads and is the default site
## should also never be changed from only allowing access from the local machine
## for a bit of extra security from casual ip address probing
<VirtualHost *:80>
    DocumentRoot "C:/wamp/www"
    ServerName  localhost
    ServerAlias localhost
    <Directory  "C:/wamp/www">
        AllowOverride All

        <IfDefine APACHE24>
            Require local
        </IfDefine>

        <IfDefine !APACHE24>
            Order Deny,Allow
            Deny from all
            Allow from 127.0.0.1 localhost ::1
        </IfDefine>
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "C:/wamp/www/project1"
    ServerName  project1
    ServerAlias project1
    <Directory  "C:/wamp/www/project1">
        AllowOverride All

        <IfDefine APACHE24>
            Require local
        </IfDefine>

        <IfDefine !APACHE24>
            Order Deny,Allow
            Deny from all
            Allow from 127.0.0.1 localhost ::1
        </IfDefine>

    </Directory>
</VirtualHost>

Теперь вам нужно еще одно изменение, вы должны раскомментировать строка в httpd.conf, которая включает в себя вышеупомянутый файл, который мы только что изменили. Поэтому отредактируйте файл httpd.conf, используйте для этого меню wampmanager, так как это гарантирует, что вы отредактируете правильный файл.

Найдите эту строку #Include conf/extra/httpd-vhosts.conf и удалите символ комментария # из начала строки следующим образом: -

Include conf/extra/httpd-vhosts.conf

Теперь, конечно, вам нужно будет перезапустить Apache, чтобы он принял ваши изменения конфигурации.

Если Apache не перезапускается, вы, вероятно, допустили ошибку в конфигурации, чтобы узнать, что неправильно пытаться это сделать.

Откройте окно командной строки и CD в папку \wamp\bin\apache\apache2.4.9\bin.

Затем выполните следующее:-

httpd -t

Если ошибка находится в файлах httpd.conf или httpd-vhost.conf, она сообщит вам об ошибке, а также сообщит номер строки, чтобы очень легко найти ошибку.

 32
Author: RiggsFolly, 2018-03-17 20:13:34

В вашей папке www откройте index.php в строке 30 изменение: $suppress_localhost должен быть ложным

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

$suppress_localhost= ложь;

 13
Author: user3795145, 2014-07-01 19:05:02

В вашей папке www откройте index.php в строке 30. Здесь измените $suppress_localhost на false. Итак, это должно выглядеть:

$suppress_localhost = false;

Это было самое быстрое и простое решение для меня. Я использую 64-битный Wamp.

 12
Author: pud, 2014-12-17 17:39:37

Ваш wamp, похоже, настроен для запуска веб-сайта в обычно несуществующем домене helloworld.

Добавить:

 127.0.0.1    helloworld

Внутри этого файла: c:\windows\system32\drivers\etc\hosts

Убедитесь, что вы запустили свой текстовый редактор с правами администратора, чтобы иметь возможность редактировать этот файл.

Это сообщит вашему компьютеру, что в противном случае несуществующий домен helloworld должен быть разрешен на ваш обратный адрес.

 3
Author: nl-x, 2014-05-08 20:23:47

Хорошо, у меня была эта проблема. Итак, я устранил проблему и проследил ее до реального решения, А НЕ ВЗЛОМА.

РЕШЕНИЕ :

  1. Щелкните правой кнопкой мыши значок WAMP-сервера
  2. Выберите WAMP Settings,
  3. Выберите (включить) опцию Add localhost in URL


ГОТОВО. Остальное - к вашему сведению, как и почему.


Примечание: localhost/myproject.php или myproject.php . Хотя решение уже было принято, я видел некоторые сообщения, которые получили я в замешательстве. Принятое решение основано на одном проекте с различными серверными приложениями, основанном на конкретном вопросе ОП и на том, как повлиять на этот отдельный проект, о котором идет речь. Но все остальные решения являются взломами и на самом деле не отвечают на решение вопроса ОП, но поднимают хороший вопрос об URL. Итак, согласно другим "решениям", вот как переключить ссылку localhost в URL-адресе. Следовательно, мое дополнительное решение добавлено к смешать.


This is a toggle switch.

Процесс устранения неполадок (без взлома):



Давайте взглянем на index.php

enter image description here


Давайте посмотрим на конфигурационный файл. Обратите внимание на переменные и массив?

enter image description here


Вот массив. Переменная, используемая ранее. Давайте посмотрим... О, это говорит нам, где и что делать.

enter image description here


Как отмечено в РЕШЕНИЕ:

enter image description here

 3
Author: ejbytes, 2016-11-22 09:26:21

Для меня было проще всего перейти к http://localhost и на домашней странице wampserver используйте Add a Virtual Host (раздел Инструментов). Существует приятная и простая форма для создания псевдонима без каких-либо проблем (вместо консоли, когда вы используете значок в трее для создания псевдонима). Без редактирования исходного кода, просто используя то, что предлагает wamp. Не забудьте обновить DNS после создания псевдонима. Протестировано на Win10, 64-битный сервер WampServer 3.0.6.

 1
Author: Jaroslav Klimčík, 2016-11-28 19:01:23

Создайте виртуальный хост, как сказал РиггсФолли.

И попробуйте раскомментировать LoadModule rewrite_module modules/mod_rewrite.so в httpd.conf

 0
Author: amdev, 2014-11-04 13:32:36

Если ваша папка "Ваши проекты" существует в "wamp/www/" и если вы можете видеть домашнюю страницу локального хоста после правильного запуска wampserever, и все еще не можете получить доступ к своим проектам, просто перейдите в папку www, откройте index.php и найдите $suppress_localhost и установите его значение в false. Перезапустите wampserver, перейдите на локальный хост и попытайтесь получить доступ к своему проекту.

 0
Author: Fam, 2015-08-18 08:44:45

Поиск имени хоста не выключен в httpd.conf с измененным корнем документа или нет. протестировано в браузере для $_SERVER['HTTP_HOST'] $_SERVER['ИМЯ_СЕРВЕРА'] $_SERVER['КОРНЕВОЙ КАТАЛОГ_ДОКУМЕНТА']

 0
Author: Adrian, 2015-09-12 11:50:37
C:\wamp\www

In index.php 
line 338 

($suppress_localhost ? 'http://' : '')


change http://   to http://localhost/
 0
Author: arrowgr, 2015-10-23 10:39:30

Для этого вы можете создать виртуальный хост с помощью Add a virtual Host утилита в меню Инструменты на домашней странице локального хоста.
Для получения дополнительной информации о том, как создать виртуальный хост, посетите: Пошаговые инструкции

 0
Author: Rakesh, 2017-05-23 12:02:51

Я также столкнулся с такой же проблемой после установки новой установки wamp в 64-битном окне windows 7. просто измените строку № 30 $suppress_localhost = ложь; Это работа для меня.

 -1
Author: Hemant Hingave, 2015-10-18 18:12:17

Открыть index.php в папке www и установите

$suppress_localhost=Истина;===>$suppress_localhost =ложь;

Это и есть работа.

 -1
Author: Umashankar Chaudhary, 2017-03-06 13:07:25

Вы можете обновить переменную "urladdlocalhost" в файле "wamp64/wampmanager.conf" до включения/выключения. По умолчанию он "выключен".
Моя версия wamp - 3.0.6.

urlAddLocalhost = "off" 

enter image description here

 -1
Author: Suresh Kamrushi, 2017-04-12 06:45:10