.htaccess - Как изменить, чтобы он перенаправлял на URL-адрес каталога (без косой черты), но по-прежнему загружал index.php из указанного каталога - PullRequest
0 голосов
/ 14 июня 2019

У меня есть следующий код в моем файле .htaccess. Он перенаправляет не www на www, удаляет косую черту из URL, удаляет .php из URL и загружает index.php из URL каталога без косой черты. Это все работает отлично.

Проблема в том, что когда я набираю "www.notmysite.co.uk/hello/index", он не удаляет часть ссылки "/ index" и не перенаправляет. Как я могу адаптировать код, чтобы он это сделал?

Например:

www.notmysite.co.uk / Articles / Index -> www.notmysite.co.uk/articles (НЕ работает)

www.notmysite.co.uk / Articles / Index.php -> www.notmysite.co.uk/articles (Рабочая)

www.notmysite.co.uk / Articles / -> www.notmysite.co.uk/articles (Рабочая)

www.notmysite.co.uk / contact.php -> www.notmysite.co.uk/contact (Работающий)

В (не работающем) примере он загружает страницу, просто не перенаправляет на правильный URL.

DirectorySlash Off

RewriteEngine On
RewriteBase /

# Redirect non-www to www
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]

# Remove all trailing slash if any
RewriteRule ^(.*)/$ /$1 [R=301,L]

# Redirect all .php extension to no extension
RewriteCond %{THE_REQUEST} .+\.php [NC]
RewriteRule ^(.*?)(\/index)?\.php$ $1 [R,L]

# Remove .php extension
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [NC,L]

# Load index page when url is directory
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.*)$ $1/index.php [NC,L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...