Назад | Перейти на главную страницу

Mod_rewrite - эти правила перезаписи работают?

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

У этой компании четыре домена в одном экземпляре apache.

Я хочу затронуть только одного - test.example.com.

Этот блок мне нужен для следующих действий:

  1. если хост - test.example.com, любой вызов / должен переходить в /admin/index.php
  2. если хост - test.example.com, любой вызов http должен переходить на https
    
    RewriteEngine On
    RewriteBase /
    RewriteCond %{HTTP_HOST} !^test\.example\.com
    RewriteRule ^/admin/index\.php$ - [L]

    RewriteCond %{HTTP_HOST} !^test\.example\.com
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /admin/index.php [L]

    RewriteCond %{HTTP_HOST} !^test\.example\.com
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
        

Большое спасибо, Линн

ОБНОВИТЬ:

Как насчет этого?

RewriteCond %{HTTP_HOST} !^test\.lifestylepubs\.com
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}$1
RewriteRule  ^/$ /admin/index.php

Если ваш сервер apache обслуживает 4 домена, то я предполагаю, что каждый домен находится в своем собственном виртуальном хосте. Если нет, то это первое, что я исправлю.

Затем вы можете поместить свое правило перезаписи в соответствующую конфигурацию vhost и не о чем беспокоиться.

В противном случае вашим правилам перезаписи просто потребуется:

RewriteCond %{SERVER_NAME}       =test.example.com
RewriteRule  ^/$                 /admin/index.php [L]

RewriteCond %{SERVER_NAME}       =test.example.com        
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}$1