Laravel .htaccess перенаправить все в одном (1.public 2.https 3.www → non-www) - PullRequest
0 голосов
/ 07 июня 2018
  1. У меня есть приложение laravel, где .htaccess перенаправляет в папку /public Laravel.
  2. Сегодня я добавил поддержку SSL и успешно обновил .htaccess, чтобы перенаправить http на https.
  3. В дополнение к этому мне нужно переписать www в non-www.Есть множество примеров, как это сделать индивидуально.Но я не могу найти, как это сделать в сочетании с первыми двумя требованиями. Пожалуйста, помогите.
    мой текущий htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
# for HTTPS
RewriteCond %{HTTPS} !^on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
#/ end of HTTPS

RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

Ответы [ 2 ]

0 голосов
/ 07 июня 2018

Я обновил ваш существующий .htaccess

RewriteCond %{HTTPS} !^on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1%{REQUEST_URI} [R=301,QSA,NC,L]

RewriteRule ^(.*)$ public/$1 [L]
0 голосов
/ 07 июня 2018
<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Start with www 
    RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
    RewriteRule ^ https://www.%1%{REQUEST_URI} [L,NE,R=301]


    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]


    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
...