WAMP – удаление локального хоста из URL проекта

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

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

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

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

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

При этом DocumentRoot является \wamp\www и это вызывает эти проблемы.

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

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

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

Поэтому использование 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 

Не забудьте обновить кеш-память 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-vhost.conf httpd.conf или httpd-vhost.conf она сообщит вам об ошибке, а также предоставит номер строки, чтобы облегчить поиск ошибки.

в вашей папке www откройте index.php в строке 30 change: $ suppress_localhost будет false

это должно выглядеть:

$ suppress_localhost = false ;

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

 $suppress_localhost = false; 

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

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

Добавить:

  127.0.0.1 helloworld 

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

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

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

Ладно, у меня была эта проблема. Итак, я устранил проблему и проследил ее до фактического решения, а не A HACK.

РЕШЕНИЕ :

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

Совершено . Остальное – FYI о том, как и почему.


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


  Это тумблер. 

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


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

введите описание изображения здесь


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

введите описание изображения здесь


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

введите описание изображения здесь


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

введите описание изображения здесь

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

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

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

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

HostnameLookups ON не выключен в httpd.conf с DocumentRoot изменен или нет. проверен в браузере для $ _SERVER ['HTTP_HOST'] $ _SERVER ['SERVER_NAME'] $ _SERVER ['DOCUMENT_ROOT']

 C:\wamp\www In index.php line 338 ($suppress_localhost ? 'http://' : '') change http:// to http://localhost/ 

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

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

$ suppress_localhost = True; ===> $ suppress_localhost = false;

это работа.

Вы можете обновить переменную «urlAddLocalhost» в файле «wamp64 / wampmanager.conf» для включения / выключения. По умолчанию он отключен.
Моей версией версии 3.0.0.

 urlAddLocalhost = "off" 

введите описание изображения здесь

Я также столкнулся с такой же проблемой после установки новой настройки Wamp в окне 7, 64 бит. просто измените строку нет. 30 $ suppress_localhost = false; Его работа для меня.