Как динамически изменить RewriteBase в зависимости от имени хоста или IP-адреса? - PullRequest
3 голосов
/ 13 декабря 2011

В настоящее время я создаю приложение на своем локальном компьютере. Приложение находится в /www/projects/mycustomproject/ и для скорости доступа он имеет свой личный домен, скажем, mycustomproject.com. Я сделал свой Apache-PHP-MySQL доступным через локальную сеть, чтобы любой мог получить доступ к моему проекту по IP-адресу 192.168.1.80, и он связан с /www/. Чтобы получить доступ к приложению, вы должны набрать 192.168.1.80/projects/mycustomproject/, и здесь возникает проблема, по умолчанию конфигурация для mycustomproject.com:

RewriteEngine on
RewriteBase /

Для доступа к приложению по IP-адресу оно должно быть:

RewriteEngine on
RewriteBase /projects/mycustomproject/

Вопрос в том, как определить правило примерно так:

if REMOTE_ADDR == 192.168.*
   RewriteBase /projects/mycustomproject/
else if HOSTNAME == 'mycustomproject.com'
   RewriteBase /
etc.

Возможно, могут быть другие пользовательские условия, основанные на имени хоста или IP-адресе, и операторы IF/ELSE предпочтительнее, чем RewriteCond

1 Ответ

0 голосов
/ 13 декабря 2011

Почему бы вам просто не настроить mycustomproject в качестве собственного виртуального хоста ?

Настройте хост как:

# Listen for virtual host requests on all IP addresses
NameVirtualHost *:80

# default root for non-matched ServerName
DocumentRoot /www/

<VirtualHost *:80>
    ServerName local.mycustomproject.com 
    DocumentRoot /www/projects/mycustomproject/
</VirtualHost>

Затем можно создать локальную запись в файле DNS или HOSTS для local.mycustomproject.com.

Таким образом, вы можете разместить столько проектов, сколько хотите, локально (просто добавьте больше разделов <VirtualHost>), и они очень близко отражают реальную производственную среду.

Если вы хотите использовать «настоящее» доменное имя, просто удалите «локальное». в моем примере.

Вы также можете использовать ServerAlias ​​ для настройки, например, ServerAlias www.local.mycustomproject.com

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