Как перенаправить www на не-www https? - PullRequest
0 голосов
/ 16 октября 2018

Я установил https на свой домен.И все эти случаи доступны на моем сайте:

http://example.com        // will be redirected to https://example.com
https://example.com
http://www.example.com    // will be redirected to https://www.example.com
https://www.example.com

Видите?все будет использовать протокол https.Все отлично.


Теперь мне нужно перенаправить все www на non-www.Поэтому http://www.example.com и https://www.example.com должны быть перенаправлены на https://example.com (другими словами, все случаи должны быть перенаправлены на это) .

Вот мой текущий код в /etc/apache2/sites-avalible/000-default.conf:

<VirtualHost *:80>
.
.
.
RewriteEngine on
RewriteCond %{SERVER_NAME} =lamtakam.com [OR]
RewriteCond %{SERVER_NAME} =www.lamtakam.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]               -- this
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]              -- and this are for www redirection
                                                        -- but doesn't work
</VirtualHost>

есть идеи?

также lamtakam - это мой точный домен, о котором я говорил, если вам нужно что-то проверить.


Редактировать:

В настоящее время у меня есть этот файл внутри .htaccess в корне моего проекта:

RewriteEngine on

Options -Indexes

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# this doesn't work on some version of xampp
# RewriteRule ^(.*)$ index.php?rt=$1 [L,QSA]

RewriteRule ^([\s\S]*)$ index.php?rt=$1 [L,B,QSA]

ErrorDocument 404 /error404.html

1 Ответ

0 голосов
/ 17 октября 2018

Если вы хотите правила в VirtualHost, то это будет 2 набора правил.Если вы можете хранить правила в корне сайта .htaccess, то это будет одно правило.Я предоставляю здесь правило .htaccess:

RewriteEngine On

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

Убедитесь, что вы удалили существующие правила, показанные в VirtualHost выше, и протестировали в новом браузере, чтобы избежать кеширования старого браузера.

...