Скрытие существования каталога и файловой структуры с помощью .htaccess - PullRequest
0 голосов
/ 22 июня 2019

Я хочу скрыть структуру своего сайта и перенаправить все возможные запросы в один файл (index.php) с помощью .htaccess.

Сейчас я использую .htaccess, чтобы отказать в разрешении на чтение изображений и каталогов и перенаправить запросы в index.php. Если кто-нибудь запрашивает запрещенный каталог / файл, он показывает E403. В этом случае я хочу перенаправить запрос на index.php, а не E403.

Так что в основном: я хочу начать обработку каждого возможного запроса (существующей / несуществующей страницы, файла .php, изображения, другого файла, dir ..., кроме css и js) в одном файле (index.php) , несмотря ни на что, пользователь будет каждый раз видеть мой контент index.php (сгенерированный из множества файлов на стороне сервера, в зависимости от URI). Мой .htaccess может скрывать содержимое изображения, но не структуру и файлы PHP. Если кто-то запрашивает неверный URI, он работает (index.php показывает сообщение об ошибке), но если кто-то запрашивает существующий PHP, он выполняет его.

Order allow,deny
Deny from all
</Files>

<FilesMatch "\.(log|jpg|png|jpeg|gif|ico|jfif|pdf|phtml)$">
Order allow,deny
Deny from all
</FilesMatch>

Options -Indexes

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(css|js)$ index.php [L]

AddType application/x-httpd-php .php .phtml

1 Ответ

1 голос
/ 22 июня 2019

Вы можете определить конкретную страницу ошибки в формате php или html.и вы можете перенаправить своего посетителя на определенную страницу

    ErrorDocument 404 /errors/404.php
    ErrorDocument 403 /errors/403.php

Например, в 404.php вы можете использовать этот код:

header("Location: http://example.com/index.php");

или, если вы хотите использовать index.html, вы можете сделатьэто:

<html>
    <head>
<meta http-equiv="refresh" content="0; url=http://example.com/" />
    </head>
</html>

или также может сделать что-то вроде этого:

    ErrorDocument 404 /index.php
    ErrorDocument 403 /index.php

эта ссылка также полезна

и для вашего нового комментариявам ответ "да".Вы можете обработать расширение как другое расширение, посмотрите на этот код:

AddType application/x-httpd-php .mp3
RewriteEngine On
RewriteRule /load.mp3 /load.php

этот код добавит MIME-тип и обработает файлы .mp3 как .php, вы также можете использовать этот код:

Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteRule ^(.+).mp3$ /$1.php [NC,L]

и эта ссылка тоже полезна

...