Я пытаюсь установить файл htaccess для удаления .php
а также .html
растяжение, сила non-www
а также https
но он терпит неудачу index.php
внутри подкаталогов.
У меня есть следующий синтаксис в htaccess:
RewriteEngine on
# Redirect www and http to https - non-www
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]
# Start php extension remove
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
# End php extension remove
# Start html extension remove
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html
# End html extension remove
Отлично работает на https
а также non-www
но когда я указываю подкаталог en (domain.com/en
) Я получаю следующее сообщение в браузере:
Запрашиваемый URL /en.php не был найден на этом сервере.
Есть идеи?
Путь к подкаталогу будет следующим: domain.com/en/ (заканчивается косой чертой).
domain.com/en не является каталогом / файлом, поэтому RewriteRule ^ (. *) $ $ 1.php имеет значение true и запрашивается /en.php
Других решений пока нет …