2014-11-04 3 views
0

Я создаю каталог проектов моей компании, которые будут жить как локально (с использованием MAMP на данный момент), так и на нашем промежуточном сервере.Условное перенаправление в .htaccess с использованием RewriteCond

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

У меня есть первая часть, работающая отлично - от корня промежуточного сервера до нашей домашней страницы.

RewriteEngine On 

RewriteCond %{HTTP_HOST} staging.com 
RewriteRule (.*) http://www.homepage.com [R=301,L] 

Это часть, которую я не могу понять. Если вы просматриваете наш локальный сервер в корневом каталоге (например, http://102.168.0.27:8888), я хотел бы перенаправить его в папку в том же домене (например, http://102.168.0.27:8888/directory). Просмотр любой папки (http://102.168.0.27:8888/*) не должен перенаправляться только в том случае, если не указана никакая папка.

Слишком сложное, что IP-адрес может измениться, и я не хочу его обновлять. Я также не хочу указывать папки в этом домене, которые не должны перенаправляться; это должна быть ЛЮБАЯ папка.

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

RewriteCond %{HTTP_HOST} !staging.com 
RewriteRule (.*) /directory [R=301,L] 

Резюмируя:

  • В корневом каталоге постановка сервера, перенаправление на главную страницу
  • Локально, перенаправлять в папку, если ни один не указан
  • Локально не перенаправлять, если указан каталог
  • Не указать локальный домен/IP
  • Не указывать имена папок
+0

Все локальные сети используют порт 8888? потому что вы можете подключить свои условия к этому – yoavmatchulsky

+0

Да, всегда этот порт. Я пойду. –

ответ

1

Используя условие 8888 порта для локальной среды, попробуйте следующее:

RewriteCond %{SERVER_PORT} 8888 RewriteCond %{REQUEST_URI} ^/$ RewriteRule .* /directory [R=301,L]

Другие файлы/каталоги на это правило не должно влиять на локальный сервер.

+0

Это не работает. Он не перенаправляет вообще, даже на корень. –

+0

Я обновил ответ и переместил условие на REQUEST_URI – yoavmatchulsky

Смежные вопросы