Страница 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
давайте на шаг назад... без реврайтов у вас все сайты нормально работают?