禁止访问除一个php文件之外的所有php文件,而不将文件放在单独的文件夹中

禁止访问除一个php文件之外的所有php文件,而不将文件放在单独的文件夹中,php,regex,apache,.htaccess,mod-rewrite,Php,Regex,Apache,.htaccess,Mod Rewrite,我使用此代码阻止直接访问服务器上的.php文件: #disable access to files by direct .php RewriteCond %{THE_REQUEST} ^[A-Z]+\ /[^?\ ]*\.php[/?\ ] RewriteRule .*\.php$ 404.php [L] 使用上面的代码,任何访问我的服务器上的直接文件(例如index.php)的尝试都将被拒绝,而SEO链接不会被拒绝 我想对服务器上名为“ajax.php”的php文件做一个例外。如何在不将文

我使用此代码阻止直接访问服务器上的.php文件:

#disable access to files by direct .php 
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /[^?\ ]*\.php[/?\ ]
RewriteRule .*\.php$ 404.php [L]
使用上面的代码,任何访问我的服务器上的直接文件(例如index.php)的尝试都将被拒绝,而SEO链接不会被拒绝


我想对服务器上名为“ajax.php”的php文件做一个例外。如何在不将文件放入单独文件夹的情况下执行此操作?

您可以使用负前瞻:

RewriteCond %{THE_REQUEST} \s/(?!ajax\.php).+?\.php[\s?] [NC]
RewriteRule \.php$ 404.php [L]