Здравствуйте!
http:// site.ru /page - отображается без расширения
https:// site.ru /page.php - появляется расширение .php (при включенном редиректе с http на https)
Если вручную написать https:// site.ru /page, то показывает расширение
Если отключить редирект, то http и https версии отображаются без расширения - как надо
Подробнее:
Нужно было убрать расширение файла с адресной строки http версии сайта, ssl сертификата тогда не было
Убрал расширение у ссылок в разметке с href="page.php" на href="page". В файл .htaccess добавил следующее:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
Работает всё хорошо.
Через какое-то время подключил ssl сертификат, добавил код для 301 редиректа в самый верх файла .htaccess:
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
Переадресация работает, но теперь отображается расширение файла.
В файле .htaccess есть только еще одна строчка кода в самом низу, больше ничего нет:
ErrorDocument 404 /404.php
Перепробовал разные готовые комбинации кода для "убирания" расширения и редиректа, но ничего не работает.
В .htaccess совсем не разбираюсь, в интернете ответ не нашёл.
Подскажите, пожалуйста, как решить мою проблему. Спасибо за внимание!
Весь код целиком
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
#ErrorDocument 404 /404.php