Symfony2 + Apache2: правило перезаписи должно охватывать https

Я использую следующие строки для моей конфигурации VirtualHost:

<VirtualHost *:80>
ServerAdmin [email protected]
ServerName www.xxx.yy
ServerAlias wwww.xxx.yy

DirectoryIndex app.php
DocumentRoot /var/www/xxx.yy/public_html/web

<Directory /var/www/xxx.yy/public_html/web>
AllowOverride None
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
</Directory>

# Log file locations
LogLevel warn
ErrorLog  /var/www/xxx.yy/log/error.log
CustomLog /var/www/xxx.yy/log/access.log combined
</VirtualHost>

Теперь я добавил сертификат SSL на свой сервер, и когда я звоню https: //xxx.yy браузер показывает мне веб / каталог, когда я набираю https: //xxx.yy/app.php Все отлично.

Как я могу добиться, чтобы RewriteRule также работал для https: //?

Или, я могу сказать, я всегда хочу Http: //xxx.yy/* использовать http и просто https: //xxx.yy/login а также https: //xxx.yy/payment использовать https?

Спасибо за вашу помощь!

0

Решение

Вам не хватает определения VirtualHost для SSL <VirtualHost *:443> который должен содержать те же правила перезаписи, что и по умолчанию.

Лучший способ заставить HTTPS для некоторых страниц определить схемы маршрутов. Например.

secure:
path:     /secure
defaults: { _controller: AcmeDemoBundle:Main:secure }
schemes:  [https]

Или через access_control вариант requires_channel:

access_control:
- { path: ^/secure, roles: ROLE_ADMIN, requires_channel: https }
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]