Apache / PHP - псевдоним исходящего URL - PullRequest
0 голосов
/ 24 марта 2010

В моем коде PHP есть ссылки на URL на другом сайте. Я тестирую свой веб-сайт локально (используя XAMPP). Можно ли заставить Apache автоматически заменить домен этого другого сайта на localhost?

Например, мой PHP-код может быть:

<?php echo "<a href='http://www.othersite.com'>Click me</a>"; ?>

И я бы хотел, чтобы мой локальный Apache псевдоним это

<?php echo "<a href='http://localhost'>Click me</a>"; ?>

Возможно ли это?

[править] Просто чтобы уточнить, я хочу сделать это без изменения кода PHP. Возможно, это было бы невозможно, но я подумал, что стоит спросить, так как это упростит локальное тестирование без необходимости использования хаков в коде PHP.

Cheers, Dan.

Ответы [ 3 ]

1 голос
/ 24 марта 2010

Apache поддерживает псевдонимы для виртуальных хостов. Используйте директиву ServerAlias и просто создайте псевдоним для другого домена.

Вам придется обновить файл hosts (какую операционную систему вы используете?), Чтобы указать другой домен на localhost (чтобы он не выполнял обычный старый поиск DNS). Перезапустите Apache, и вы должны быть в бизнесе.

0 голосов
/ 24 марта 2010

Это не похоже на работу для Apache;даже в mod_rewrite, поскольку последовательность событий выглядит следующим образом:

  1. Ваш PHP-скрипт создает HTML-код для страницы с использованием предоставленного вами кода со ссылкой на www.othersite.com
  2. Apache ТОЛЬКО отправляет этот код в браузер пользователя.
  3. Когда пользователь нажимает на ссылку, БРАУЗЕР пытается получить доступ к www.othersite.com.Ваш Apache не имеет никакого отношения к этому шагу.

Здесь вам нужно кое-что для пост-обработки вывода, сгенерированного вашим PHP-скриптом.Угадайте, что: PHP уже может это сделать.Вы можете найти модуль Apache, который выполняет обработку на выходе перед отправкой его клиенту, но он избыточен, если вы используете PHP.

Решение, предложенное Silmaril89, выглядит для меня довольно неплохо;есть переменная, которая сообщает, что вы находитесь в «режиме тестирования», и создайте свои URL в соответствии с этим.

0 голосов
/ 24 марта 2010

Я не уверен, почему вы захотите делать то, что хотите. Но вы можете создать переменную и оператор if и if, говорящий.

if (you are localhost)
    $p = "localhost"
else 
    $p = "www.othersite.com"

<a href='http://'.$p.'>Click me</a>

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...