У меня есть дилемма, и это беспокоит меня довольно долгое время. У меня есть локальный сервер тестирования, который настроен так: 127.0.0.1/
Мой сайт в автономном режиме выглядит следующим образом:
127.0.0.1/websitename/index.php
Моя живая версия веб-сайта выглядит так:
websitename.com/index.php
У меня есть базовый скрипт почти для всех ссылок, за исключением включенных файлов заголовков и нижних колонтитулов.
Ссылки в нижнем колонтитуле и заголовочных файлах работают, за исключением главной страницы (в корневом каталоге веб-сайта).
Может ли кто-нибудь перенаправить меня к правильному методу создания привязки базового URL нескольких подкаталогов для оффлайн и онлайн?
Я переработал большинство тегов и атрибутов $_SERVER[]
, а также parse_url()
.
На локальном сервере вы можете легко и просто создать виртуальный хост , который позволяет создавать субдомен для доступа к вашему локальному сайту без ввода подкаталогов в URL-адресе.
Пример:
Для доступа к файлам вы можете сделать что-то вроде следующего:
mysite.localhost/
который точно такой же, как localhost/mysite/index.php
Таким образом, вам не нужно беспокоиться о подкаталогах при перемещении вашего веб-сайта на онлайн-сервер.
Ссылки для виртуального хоста:
WAMP
XAMPP
Я переработал большинство тегов и атрибутов
$_SERVER[]
, а такжеparse_url()
.
Не возитесь с ними. Нет никакого чистого / автоматизированного способа делать то, что вы делаете. Просто установите базовый путь вручную в файле конфигурации и не беспокойтесь об этом – относительные пути – снова и снова. И если вам нужно установить базовый URL-адрес, процесс будет аналогичным.
Итак, что касается пути к файловой базе, вы должны явно установить $BASE_PATH
следующим образом:
$BASE_PATH = '/full/path/to/your/codebase/here/';
Если вы не знаете, каков ваш базовый путь к файловой системе, просто поместите эту строку кода в свой PHP-код; например index.php
:
echo "Your path is: " . realpath(dirname(__FILE__)) . "<br />";
Затем загрузите эту страницу. Где-то рядом с вершиной будет этот текст:
Ваш путь: / full / path / to / your / codebase / here /
Затем с помощью этого набора вы можете изменить свой код таким образом:
И затем установите include_once
следующим образом:
include_once $BASE_PATH . 'includes/myfile.php';
Некоторые могут сказать, что вы должны использовать $_SERVER['DOCUMENT_ROOT']
или даже dirname(__FILE__)
непосредственно с импликацией, dirname(__FILE__)
в том, что таким образом вы можете упростить переносимость кода. Но путь к файлам, установленным для установки, может варьироваться, поэтому он просто никогда не работает хорошо, и шансы на то, что вы зацепились за необычную причугу сервера, высоки.
Всегда лучше всего вручную установить $BASE_PATH
в файле конфигурации, когда вы перемещаете код, чем справляетесь с головными болями, вызванными константами PHP, такими как $_SERVER
между установками, настройками и конфигурациями.
И что касается базового URL-адреса, просто следуйте тому же мышлению с этим, находясь на вашей локальной установке разработки:
$BASE_URL = '/websitename/';
И это на вашем рабочем сервере:
$BASE_URL = '/';
Таким образом, с помощью этого набора $BASE_URL
вы можете просто сделать это:
У меня есть базовый скрипт почти для всех ссылок, за исключением включенных файлов заголовков и нижних колонтитулов.
Теперь просто добавьте любой путь, который вам может потребоваться, с помощью URL с $BASE_URL
и вам должно быть хорошо идти.
Я предлагаю вам перейти в среду разработки, которая более точно отражает живую систему. Для этого вы можете запустить WAMP-сервер и настроить его для обслуживания своего веб-сайта в качестве домена, такого как mysite.local
а затем просто отредактировать файл хостов, чтобы mysite.local
ваш 127.0.0.1
. Затем вы просто набираете mysite.local в своем браузере, он разрешает ваш локальный ПК и убедитесь, что apache настроен для виртуальных хостов и прослушивает порт 80
.
Ваши хосты – это локальный файл поиска DNS, найденный в windows\system32\drivers\etc
Возможно, вам придется открыть его в Блокноте, который запускается как администратор, чтобы иметь возможность редактировать его.