我用下面的 htaccess 代码重写了 php 文件的文件名:
ErrorDocument 404 /notfound.html
AddType application/x-httpd-php .cgi
RewriteEngine on
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [F,L]
RewriteRule ^(.*)\.cgi $1\.php
我想做什么:我也可以限制对 php 文件的访问吗?例如,如果访问者想看page.php
得到 404 错误,而当想看main.cgi
页面时可以看到没有错误的页面,这可能吗?
如果我不能只用 htaccess 做到这一点,最好的解决方案是什么?