Есть ли альтернатива PHP $ _SERVER ['HTTP_HOST']); для apache, который не требует полноценного языка программирования (например, SSI) - PullRequest
0 голосов
/ 17 июля 2009

У меня есть простая html-страница, которая использует PHP только в двух местах

<?php preg_replace('/(www\.)?([^.]*)\.(com|info)/', '${2}', $_SERVER['HTTP_HOST']); ?>
<?php echo $_SERVER['HTTP_HOST']); ?>

На странице загружено несколько доменов, и я просто хочу отобразить имя хоста в виде текста в каком-то другом статическом контенте

Я бы хотел полностью убрать необходимость в PHP, но не отменить его другим полноценным компилятором или интерпретатором. Я хотел бы избежать использования JavaScript. Я могу жить, не имея возможности сделать регулярное выражение, чтобы получить второй уровень доменного имени, но все равно хотел бы эту опцию. Могу ли я сделать это с помощью более простого модуля apache, чем mod_php?

Нет ничего плохого в mod_php, я просто вижу, могу ли я минимизировать потребности этого веб-сайта, над которым я работаю.

Ответы [ 3 ]

5 голосов
/ 17 июля 2009

Я бы объединил оба mod_rewrite и SSI. Установите переменную окружения с помощью mod_rewrite:

RewriteCond %{HTTP_HOST} ^(www\.)?([^.]*)\.(com|info)$
RewriteRule ^ - [L,E=HOST:%2]

И затем получить доступ к этой информации в SSI с помощью:

<!--#echo var="HOST" -->
0 голосов
/ 17 июля 2009

Как насчет JavaScript? Вам нужно всего лишь два небольших изменения на сайте, которые можно легко сделать. Таким образом, вы можете просто обслуживать статические файлы HTML. А для получения домена вы можете использовать:

var domain = window.location.hostname;

Приветствия

Редактировать: Чтобы использовать mod_rewrite: Вам нужно будет установить два идентичных файла HTML, с правильным доменом в каждом. Затем вы можете доставить их через

RewriteCond %{HTTP_HOST} .+\.com
RewriteRule index.html index.com.html [L]

RewriteCond %{HTTP_HOST} .+\.info
RewriteRule index.html index.info.html [L]
0 голосов
/ 17 июля 2009

Я не проверял его, но вы можете использовать htaccess и переписать его так:

RewriteRule (.*) $1?httm_host=%{HTTP_HOST} [L]

Не знаю точно, что переменная% {HTTP_HOST} доступна в перезаписи, но она может работать. Вам может понадобиться использовать условие для проверки? в URL.

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