Intereting Posts

Базовый URL в PHP

У меня есть дилемма, и это беспокоит меня довольно долгое время. У меня есть локальный сервер тестирования, который настроен так: 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 Возможно, вам придется открыть его в Блокноте, который запускается как администратор, чтобы иметь возможность редактировать его.