WWW в NON WWW URL (удалить WWW) с помощью Apache (.htaccess)
Я должен перенаправить свой сайт сhttps://www.example.com/
вhttps://website.com/
.
SSL правильно установлен на моем сервере.
я используюапаш и должен сделать это с помощьюапаш (илиhttpd.conf/ssl.conf
или же.htaccess
)
Я использовал почти все методы, которые мог найти, но ни один из них не помог мне.
http://www.example.com/
перенаправляет должным образомhttps://example.com/
http://example.com/
перенаправляет должным образомhttps://example.com/
.
Но
https://www.example.com/
не перенаправляет правильноhttps://example.com/
.Это дает мне «неверную ошибку сертификата», и когда я добавляю исключение (принимаю сертификат) в браузере, он перенаправляет наhttps://example.com/
, Но я не хочу добавлять это исключение (добавление сертификата в браузере).
Обратите внимание, что мой сертификат SSL выдан дляexample.com
и неwww.example.com
.
Ниже приведены мои.htaccess
правила и условия
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1%{REQUEST_URI} [R=301,QSA,NC,L]
Я тоже использовал следующее, но они тоже не работали:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^example.com$ [NC]
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]
Использовал это, но не повезло
RewriteEngine On
RewriteCond %{HTTP_HOST} !^example.com$ [NC]
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]
Не повезло с этим тоже
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
Я пробовал 5-6 других решений (похоже на выше), но ни один не работал. Все работают для первых двух шаблонов, которые я упомянул выше, но ни один не работает дляhttps://www
.
Обратите внимание, что эти условия.htaccess
я имею в виду.htaccess
не игнорируется. Я проверил это, используя перенаправления, а также два шаблона, упомянутых выше, также работают.
Вhttpd.conf/ssl.conf
AllowOverride
директива установленаAll
.
У меня есть доступ кhttpd.conf/ssl.conf
.
Версия PHP 5.5.29
апаш 2.4.6 (CentOS) OpenSSL / 1.0.1e-fips PHP / 5.5.29
Hostname: Порт example.com:443
Не в последнюю очередь мой сайтhttps://example.com/
не открывается в Internet Explorer и Safari и выдает проблемы с сертификатами (ошибки), но когда я проверяю свой домен с помощью SSL-контроллеров (несколько), тогда все SSL-контролеры упоминают, что SSL установлен правильно.
Проверьте это изображение, это объяснит вещи лучше:
полный.htaccess
дается ниже:
Options +FollowSymlinks
DirectoryIndex index.html Home.php index.php
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)
RewriteRule ^.*$ https://%1/$1 [R=301,L]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://{REQUEST_URI} [L,R=301]
RewriteRule ^(blogs)($|/) - [L]
RewriteRule ^(.*)/$ index.php?mod=resturants&name=$1&%{QUERY_STRING} [L]
RewriteRule ^$ Home.php [L]
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_URI} /+[^\.]+$
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]
</IfModule>