Laravel Forcing HTTPS с переписанным модом

У меня есть сайт под управлением Laravel 3, которому нужно принудительно установить https с помощью следующего правила перезаписи в конфигурации apache:

RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

Это корректно вызывает https, но все маршруты Laravel возвращают "Not Found" (то есть не попадает в index.php), если я удаляю правило перезаписи, все работает.

.Htaccess в папке /public является нормальным для Laravel:

<IfModule mod_rewrite.c>
     Options +FollowSymLinks
     RewriteEngine On
</IfModule>

# For all files not found in the file system, reroute the request to the
# "index.php" front controller, keeping the query string intact

<IfModule mod_rewrite.c>
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

2 ответа

Решение

После нескольких часов отладки теперь все выглядит просто: в моем конфиге default-ssl не было строки

AllowOverride All

Чтобы включить чтение htaccess

Этот.htaccess работает для меня:

<IfModule mod_rewrite.c>
    #Options -MultiViews
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /index.php?/$1 [L]

    RewriteCond %{SERVER_PORT} 80
    RewriteRule ^(.*)$ https://mysite.com/$1 [R,L]
</IfModule>
Другие вопросы по тегам