Не удается указать index.php на подкаталог - PullRequest
0 голосов
/ 06 февраля 2019

Я пытаюсь установить файл 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 не был найден на этом сервере.

Есть идеи?

1 Ответ

0 голосов
/ 10 февраля 2019

Путь к подкаталогу будет указан domain.com/en/ (заканчивается косой чертой).

domain.com / en не является каталогом / файлом, поэтому RewriteRule ^ (. *) $ $ 1.php имеет значение trueи запросил /en.php

...