LINUX.ORG.RU
ФорумAdmin

История изменений вопроса Apache2 rewrite. Как переделать?

 , ,


0

1

Добрый день! Был конфиг

<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 :( Не могу с наскока осилить эти регулярные выражения.... Подскажите, где про них доступно почитать? Или что подправить, и почему именно так :)

На даный момент, мне посоветовали перенести перенаправления в htaccess. В итоге проблема такая же:

Я добавил в .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

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.