我改寫的PHP文件的文件名與下面的htaccess代碼:重寫PHP文件名CGI與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來做到這一點,最好的解決方案是什麼?
做你的QUERY_STRING檢查最終會做什麼?看起來_only_是否其中一個觸發_and_Request_Filename不是文件或目錄,RewriteRule會啓動嗎?您是否缺少Query_String檢查的RewriteRule? –