分享14個有用的.htaccess程式碼片段和技巧

來源:互聯網
上載者:User

htaccess的是一個檔案,每一個網路系統管理員應該知道和瞭解。,它控制著訪問到您的網站目錄。但仍然有很多,你應該知道的的,在這篇文章中的片段會告訴你。如何來做才能更好的讓網站效能發揮到最佳

1。控制對檔案和目錄的訪問

密碼保護是一回事,但有時你可能需要完全阻止使用者訪問一個特定的檔案或目錄的選項。這通常發生在系統檔案夾,如包括檔案夾,應用程式需要訪問,但沒有使用者會以往任何時候都需要的特權。

要做到這一點,粘貼此代碼到的。htaccess檔案,並把它的目錄中:

deny from all

 

然而,這將阻止訪問到每個人,包括你自己。授予自己訪問,你需要指定您的IP地址。下面是代碼:

order deny,allowdeny from allallow from xxx.xxx.xxx.xxx

 

xxx.xxx.xxx.xxx是你的IP。如果您要更換的最後三位元字,例如0/12,這將指定範圍的IP地址在同一網路內,從而節省您的麻煩,分別列出所有允許的IP地址。

如果你想阻止使用者訪問一個特定的檔案,包括.htaccess檔案本身,請使用下面的程式碼片段:

<Files .htaccess>order allow,denydeny from all</Files>

 

同樣,如果您要允許給定的IP地址,允許從列出。

如果你想阻止訪問特定的檔案類型,用它來代替:

<FilesMatch ".(htaccess|htpasswd|ini|phps|fla|psd|log|sh)$">Order Allow,DenyDeny from all</FilesMatch>

 

2。禁用瀏覽目錄

防止瀏覽目錄,

Options All -Indexes

 

但是,如果由於某種原因,你要啟用瀏覽目錄,更改為以下內容:

Options All +Indexes

 

3。高速化的載入時間,壓縮檔

你可以壓縮任何類型的檔案,不僅映像。例如,要壓縮HTML檔案,使用這樣:

AddOutputFilterByType DEFLATE text/html

 

要壓縮文本檔案,使用這樣的:

AddOutputFilterByType DEFLATE text/plain

 

您也可以壓縮的Javascript,或壓縮多個檔案類型使用一個命令:

AddOutputFilterByType DEFLATE application/javascriptAddOutputFilterByType DEFLATE application/rss+xml

 

另外,如果你想你的JavaScript,HTML和CSS檔案GZIP壓縮,可以使用:

<IfModule mod_gzip.c>mod_gzip_on Yesmod_gzip_dechunk Yesmod_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_exclude mime ^image\.*mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*</IfModule>

 

4。防止盜鏈保護您的網站

如果你不希望你的圖片盜鏈,使用下面的代碼:

RewriteEngine onRewriteCond %{HTTP_REFERER} !^$RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain.com [NC]RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]

 

上面替換yourdomain.com為你自己網站。

5。阻斷來自特定域的訪問者

如果你有你不歡迎來自特定域的使用者,你可以禁止他們。例如,如果您的網站被列在一個地方,你不想要的流量(即成人網站,黑帽網站等),你可以為一個403 Forbidden。您需要啟用mod_rewrite的,

<IfModule mod_rewrite.c>RewriteEngine onRewriteCond %{HTTP_REFERER} bannedurl1.com [NC,OR]RewriteCond %{HTTP_REFERER} bannedurl2.com [NC,OR]RewriteRule .* - [F]</ifModule>

 

您需要更換bannedurl1.combannedurl2.com等 你想加入黑名單的網域名稱。您可能要使用[NC]標誌,因為它指定了您輸入的網域名稱不區分大小寫。[F]標誌指定要採取的行動-在這種情況下,顯示403 Forbidden錯誤。如果你想禁止多個網站,請使用[NC,OR]標誌為每一個網域名稱,但最後,如果你想禁止單個域中使用[NC]標誌。

6。從特定的使用者代理程式阻斷請求

如果你的記錄檔顯示特定的使用者代理程式(機器人或蜘蛛),你可以添加幾行字在.htaccess檔案,並拒絕他們的訪問到您的網站:

RewriteEngine On  RewriteBase /  SetEnvIfNoCase Referer "^$" bad_userSetEnvIfNoCase User-Agent "^badbot1" bad_userSetEnvIfNoCase User-Agent "^badbot2" bad_userSetEnvIfNoCase User-Agent "^badbot3" bad_userDeny from env=bad_user

 

 

更換badbot1badbot1,從記錄檔中的機器人的名字。

7。快取檔案

另一種方式是通過檔案快取到您的網站的載入時間加快。下面是你需要添加以快取檔案:

<FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$">Header set Cache-Control "max-age=2592000"</FilesMatch>

 

您可以添加更多的檔案類型(或刪除其中的一些),您還可以使用的max-age指定的時間量,

8。禁用緩衝為特定的檔案類型

如果你不想緩衝特定的檔案類型,很容易不包括緩衝中的序列。但是,有時檔案可能會緩衝,即使你沒有明確列出他們,在這種情況下,您可能需要禁用緩衝,只保留適合自己的,大多數情況下,你需要禁用緩衝的動態檔案,如指令碼。

<FilesMatch ".(pl|php|cgi|spl|scgi|fcgi)$">Header unset Cache-Control</FilesMatch>

 

 

9。繞過下載對話方塊

預設情況下,當您嘗試從Web伺服器下載檔案時,你會得到一個對話,詢問您是否要儲存檔案或開啟。這種對話是尤其是在大的媒體檔案或PDF檔案。如果你已經上傳到伺服器的檔案進行下載,您可以節省使用者的時間和進行直接下載。以下是你所需要的。htaccess檔案中設定:

AddType application/octet-stream .pdfAddType application/octet-stream .zipAddType application/octet-stream .mp3

 

10。重新命名 的.htaccess檔案

如果由於某種原因,主要是與安全相關的,你要重新命名的。htaccess檔案,這是很容易做到這一點。

AccessFileName htac.cess

 

您還需要更新.htaccess檔案中的任何專案檔本身或被提及的地方,否則,你會得到很多的錯誤。

11。更改預設的索引頁

如果你想你的索引頁是從預設的index.htmlindex.php檔案INDEX.HTM等不同的東西,這是很容易做到的。

DirectoryIndex mypage.html

 

 

12。重新導向到一個安全的HTTPS串連

如果您使用的是HTTPS,您希望將使用者重新導向到您的網站的安全網頁,使用這樣的:

RewriteEngine OnRewriteCond %{HTTPS} !onRewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

 

13。限制在PHP檔案上傳限制,最大尺寸的POST資料,最大指令碼執行時間,等

htaccess檔案允許你設定一些值,直接影響到你的PHP應用程式。例如,如果你想要強加在PHP上傳限制,:

php_value upload_max_filesize 15M

 

您也可以在PHP上傳後的最大尺寸為限制,

php_value post_max_size 10M

 

如果你不想指令碼執行永遠,你可以限制以下的執行時間:

php_value max_execution_time 240

 

最後,如果你想限制的指令碼解析輸入資料的時間,使用這樣的:

php_value max_input_time 180

 

適合你在幾秒鐘內設定任何值。

14。偽裝的檔案類型

有時你不希望使用者在您的網站上知道的檔案類型的檔案。。例如,您可以使您的所有檔案,看起來好像他們是HTML或PHP檔案:

ForceType application/x-httpd-phpForceType application/x-httpd-php

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.