Страница 1 из 1

Apache2 rewrite. Как переделать?

Добавлено: 2016-03-20 10:07:37
uvetrom
Добрый день!
Есть конфиг

Код: Выделить всё

<VirtualHost site.ru:80>
        ServerAdmin admib@site.ru
        ServerName site.ru
        ServerAlias www.site.ru
        DocumentRoot /var/www/site.ru/
        <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{HTTPS} off
        RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
        </IfModule>

<Directory /var/www/site.ru/>
AllowOverride All
</Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Перенаправляет все запросы на https.
Задумка была такая, все кто пришел на site.ru перешли на https://site.ru, это как бы работает...
Но, вот, если кто то приходит на test.site.ru должны там же и оставаться... а их перекидывает на https :(
Не могу с наскока осилить эти регулярные выражения.... Подскажите, где про них доступно почитать? Или что подправить, и почему именно так :)

Apache2 rewrite. Как переделать?

Добавлено: 2016-03-20 11:07:06
Alex Keda
через .htaccess разрулите

Apache2 rewrite. Как переделать?

Добавлено: 2016-03-20 15:05:18
uvetrom
Alex Keda писал(а):через .htaccess разрулите
Т.е., если у меня сайты в разных папках, мне лучше сделать в каждой папке htaccess.
В частности, если я в папке site.ru сделаю файл htaccess c перенаправлением, то он не будет распространяться на поддомены?
А сейчас у меня мой конфиг действует на весь сервер?

Отправлено спустя 28 секунд:
поддомены тоже в разных папках лежат

Apache2 rewrite. Как переделать?

Добавлено: 2016-03-20 19:03:47
uvetrom
Если честно, то ничего не получилось :(
Я добавил в .htaccess который лежит в /site.ru/

Код: Выделить всё

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

</IfModule>
Дальше, у меня есть 2 конфига апача, /etc/apache2/sites-available/site.ru.conf

Код: Выделить всё

<VirtualHost *:80>
        ServerAdmin admn@site.ru
        ServerName site.ru
        ServerAlias www.site.ru
        DocumentRoot /var/www/site.ru/
        <Directory /var/www/site.ru/>
        AllowOverride All
        </Directory>
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
и /etc/apache2/sites-available/site.ru.ssl.conf

Код: Выделить всё


<IfModule mod_ssl.c>
<VirtualHost *:443>
        Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
        ServerAdmin admin@site.ru
        ServerName site.ru
        ServerAlias www.site.ru
        DocumentRoot /var/www/site.ru/
        SSLCACertificateFile /etc/ssl/ca-certs.pem
        SSLUseStapling on
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
        SSLEngine on
        SSLCertificateKeyFile /etc/ssl/site.ru.key
        SSLCertificateFile    /etc/ssl/2_site.ru.crt
        SSLCertificateChainFile /etc/ssl/1_root_bundle.crt
        <Directory /var/www/site.ru>
AllowOverride All
</Directory>
</VirtualHost>
SSLStaplingCache shmcb:/tmp/stapling_cache(128000)

И, почему то, все равно, любые поддомены он переписывает на https
Например, /etc/apache2/sites-available/exilog.site.ru.conf

Код: Выделить всё

<VirtualHost *:80>
    ServerAdmin admin@site.ru
    DocumentRoot /var/www/exilog
    ServerName exilog.site.ru
    DirectoryIndex exilog_cgi.pl
    ErrorLog /var/log/apache2/exilog.site.ru.log
    <Directory "/var/www/exilog/">
    Options ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
    </Directory>
</VirtualHost>

в папке /var/www/exilog/ есть свой htaccess:

Код: Выделить всё

Options +ExecCGI
AddHandler cgi-script .pl
DirectoryIndex exilog_cgi.pl

Apache2 rewrite. Как переделать?

Добавлено: 2016-03-21 9:21:56
kharkov_max
Сделайте еще один виртуалхост, и поставьте его в конфиге выше и все будет работать..
Т.е. ваши сайты должны быть в разных виртуалхостах...

Apache2 rewrite. Как переделать?

Добавлено: 2016-03-21 11:25:32
uvetrom
kharkov_max писал(а):Сделайте еще один виртуалхост, и поставьте его в конфиге выше и все будет работать..
Т.е. ваши сайты должны быть в разных виртуалхостах...
Наверное я не до конца понимаю логику работы апача :(
Я думал что у меня сейчас разные виртуал хосты, хоть они и расположены в разных конфиг файлах.
Не так?
exilog у меня описан в одном виртуалхосте, основной сайт в другом?
и активирую я их через a2ensite имя конфига

Отправлено спустя 6 минут 5 секунд:
Да, и я заметил, что браузеры кешируют реврайт....

Apache2 rewrite. Как переделать?

Добавлено: 2016-03-22 22:52:20
FiL
давайте на шаг назад... без реврайтов у вас все сайты нормально работают?