Переписать index.php в ничто, а other.php - в другое. - PullRequest
0 голосов
/ 24 января 2019

Я пытаюсь создать простую CMS.
Мне нужно .htaccess, чтобы переписать ссылки, указывающие на /index.php, на /
, а все остальные /files.php на /files.

В настоящее время я использую что-то вроде

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^\ ]+)\.php
RewriteRule ^/?(.*)\.php$ /$1 [L,R=301]

RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^/?(.*)$ /$1.php [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

Это переписывает <a href='layout/header.php'> в /header в панели URL, что хорошо.Но возвращение к /index.php приведет к /index.php, что плохо.

Что мне здесь не хватает?

1 Ответ

0 голосов
/ 24 января 2019

Это решило мою проблему

RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L]

RewriteCond %{THE_REQUEST} ^GET.*index [NC]
RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^\ ]+)\.php
RewriteRule ^/?(.*)\.php$ /$1 [L,R=301]
...