apache — отключить выполнение php напрямую с помощью .htaccess

У меня есть это на моем htaccess:

<IfModule mod_rewrite.c>

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L]

</IfModule>

И в index.php я получаю REQUEST_URI, чтобы я мог знать, какую страницу отображать.

Но у меня есть другие файлы .php, как сделать, чтобы все выполнение PHP как http://domain.com/file.php направляет на index.php?

Если я в строке «RewriteCond% {REQUEST_FILENAME}! -F», то sitemap.xml не работает.

Извините за мой плохой английский, и спасибо за вашу помощь!

1

Решение

Вы можете иметь это так:

<IfModule mod_rewrite.c>
RewriteEngine On

# route all *.php to /index.php
RewriteCond %{THE_REQUEST} \s/+(.+?)\.php[/\s?] [NC]
RewriteRule !^index\.php$ index.php [L,NC]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L]

</IfModule>
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector