заставить URL работать локально и удаленно для разработки - PullRequest
0 голосов
/ 12 декабря 2011

Я хочу бесшовное и портативное решение для локальной / удаленной веб-разработки, которое позволяет мне использовать абсолютные URL / URI, которые работают локально, когда на моем локальном dev env, а также работают на удаленном сервере без изменений.
Я ужеMySQL работал таким образом, поскольку я перенаправил имя хоста на мою машину с именем 127.0.0.1 и использовал то же имя хоста, которое использует удаленный сервер, вместе с тем же пользователем и паролем.
Но когда приходит http, я могуКонечно, не делайте то же самое, потому что тогда я не смог получить доступ к удаленному URL из браузера и, в свою очередь, увидел бы локальный веб-сервер.
Так есть ли способ?
Я использую PHPна Apache и нескольких различных MVC, Wordpress и т. д., поэтому, возможно, выполнение этого с помощью кода не будет очень переносимым между проектами, а также наличие кода проверки, который отличает локальный от удаленного, может отрицательно повлиять на производительность рабочего сервера.

edit: Хорошо, я знаю, как это сделать в PHP, я бы лучше настроил некоторые настройки в моей локальной среде, чтобы удаленному серверу не пришлось выполнять дополнительную обработку для этого.
Кроме того,Есть файлы, которые не проходят предварительную обработку PHP, такие как файлы .js, которые тоже нуждаются в этом.

Ответы [ 2 ]

2 голосов
/ 12 декабря 2011

Вы можете использовать $_SERVER['HTTP_HOST'], чтобы получить имя хоста (или IP-адрес), которое использовалось для доступа к странице.Таким образом, вы можете сделать все свои абсолютные URL-адреса

$url = "http://{$_SERVER['HTTP_HOST']}/path/to/file";

вместо

$url = "http://localhost/path/to/file";

Это значение будет взято из заголовка Host: HTTP-запроса, поэтому оно также будет учитыватьнестандартные порты.

1 голос
/ 12 декабря 2011

Вы можете иметь что-то вроде этого (как вы включаете это зависит от вас):

if($_SERVER['SERVER_NAME'] == "localhost"){
        $baseurl = "http://localhost/";
}else{
        $baseurl = "http://livesite.com/";
}

, а затем, когда вы хотите добавить ссылку:

<a href="<?php echo $baseurl; ?>index.html">Home</a>
...