Я ищу способ скрыть расширение файла через .htaccess и запретить прямой доступ. Давайте рассмотрим следующее:
http://www.xyz.zyx/index.php
преобразуется в
http://www.xyz.zyx/index OR http://www.xyz.zyx/
Все хорошо до сих пор. То, что я хочу сделать дальше, – это блокировать или перенаправлять, когда пользователь пытается получить прямой доступ. Например, если пользователь вводит в строке URL следующий (расширение), блокирует или перенаправляет:
http://www.xyz.zyx/index.php
Я проверил другие ответы на другие вопросы, но, похоже, это не так.
Заранее спасибо за помощь новичку, как я.
Хотя можно задаться вопросом о полезности такой вещи, это возможно, так вот как это сделать в .htaccess
с помощью mod_rewrite
:
RewriteEngine On # Sets your index script RewriteRule ^$ index.php [L] # Condition prevents redirect loops (when script is not found) RewriteCond %{ENV:REDIRECT_STATUS} !^$ RewriteCond %{REQUEST_FILENAME} !-f # Stop here if the file is not found after a redirect RewriteRule ^(.*)$ notfound.php [L] # Condition prevents redirect loops (when script is found) RewriteCond %{ENV:REDIRECT_STATUS} ^$ # Forbid access directly to PHP files RewriteRule ^.*?\.php$ forbidden [F,L] # Make sure the filename does not actually exist (images, etc.) RewriteCond %{REQUEST_FILENAME} !-f # Append the .php extension to the URI RewriteRule ^(.*)$ $1.php [L]