如何阻止 apache httpd 服务器中的用户访问目录内的 *.php 文件,而用户应使用目录名称访问该文件

如何阻止 apache httpd 服务器中的用户访问目录内的 *.php 文件,而用户应使用目录名称访问该文件

我的要求看起来很简单,但是谷歌搜索还没有帮助我。
我的问题是
我想向试图访问我网站中的 *.php 文件的用户抛出一个 404 页面(而不是重定向到另一个文件夹或文件)

例如:当客户要求 www.example.com/home/我想显示内容,但是当用户说

www.example.com/home/index.php 我想显示 404 页面。

我尝试了不同的方法,但都没有用,其中一种方法如下所示

<Directory "C:/xampp/htdocs/*">
    <FilesMatch "^\.php">
        Order Deny,Allow
        Deny from all
        ErrorDocument 403 /test/404/
        ErrorDocument 404 /test/404/
    </FilesMatch>
</Directory>

提前致谢

答案1

这是我的 .htaccess 文件。您可以在这里演示它: http://mathpdq.com/demo2 或者
http://mathpdq.com/demo2/index.php

AddDefaultCharset UTF-8
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /demo2
    RewriteCond %{HTTP_HOST} ^mathpdq\.com
    RewriteRule ^(.*)$ http://www.mathpdq.com/demo2/$1 [R=permanent,L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

答案2

这只是一条基本的重写规则,您可以将其作为 .htaccess 文件放在您的文件夹中,或者放在您的服务器配置或虚拟主机配置中

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f

//allowed files, just remove the ! to use this rule to deny
RewriteCond %{REQUEST_URI} !.*\.(css|js|jpg|gif|png|zip|tff)

//redirect location
RewriteRule (.*) /public/www/404.php

相关内容