1
我的CakePHP 2網站有以下.htaccess文件。
我把它放在webroot文件夾下。CakePHP站點使用.htaccess限制對某些文件的訪問
每天一些機器人嘗試登錄到我的網站作爲WordPress的網站。所以我需要限制一些文件名(wp-login.php)或者一些目錄如Administrator或者cache。
- 但是,當我進入到example.com/wp-login.php我得到「錯誤:發生內部錯誤。」 CakePHP異常的頁面。
- 當我取消註釋「目錄/管理員」或「目錄/緩存」每個頁面給出403錯誤。
我該如何限制到那些文件和文件夾?
<FilesMatch "\.(htaccess|htpasswd|ini|phps|fla|psd|log|sh)$">
Order allow,Deny
Deny from all
</FilesMatch>
<Files wp-login.php>
Order allow,deny
Deny from all
</Files>
#<Directory /Administrator>
# Order allow,deny
# Deny from all
#<Directory>
#<Directory /Cache>
# Order allow,deny
# Deny from all
#<Directory>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
#set file cache maximum age in seconds
<ifmodule mod_headers.c>
<filesmatch "\.(ico|flv|jpg|jpeg|png|gif|css|swf)$">
Header set Cache-Control "max-age=518400, public"
</filesmatch>
<filesmatch "\.(js|css)$">
Header set Cache-Control "max-age=604800, public"
</filesmatch>
</ifmodule>
# gzip files
<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_include mime ^application/javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>
# gzip files
<ifModule mod_deflate.c>
<filesMatch "\.(css|js|x?html?|php)$">
SetOutputFilter DEFLATE
</filesMatch>
</ifModule>
編輯:我改變了重定向代碼。目錄問題解決了,但CakePHP風格的Interval服務器錯誤異常仍然存在。
<FilesMatch "\.(htaccess|htpasswd|ini|phps|fla|psd|log|sh)$">
Order allow,Deny
Deny from all
</FilesMatch>
<Files "wp-login.php">
Order allow,deny
Deny from all
</Files>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteRule ^/?(administrator|cache|undefined) - [L,F,NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
編輯的問題。目錄問題通過您的評論解決。雖然我把文件名放在引號內,但wp-login錯誤仍然存在。 – trante
@trante仍然沒有看到任何錯誤。那麼,不管是什麼情況,你總是可以將wp-login.php添加到列表中:'RewriteRule^/?(administrator | cache | undefined | wp-login \ .php) - [L,F,NC]' –
Your上次評論解決了我的問題。所以我接受:)) – trante