成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Apache .htaccess文件的8個用法

原創
開發 前端
通過.htaccess文件我們可以做的事包括:為文件夾設置密碼保護,創建重定向,調整PHP設置,控制文件緩存,控制服務器如何處理擴展名,以及改變文件返回給訪問者的方式。下面我開始介紹這個文件最常見的8種用法。

【51CTO譯文精選】.htaccess文件允許我們針對特定目錄及其子目錄修改一些服務器設置,雖然這種類型的配置最好是在服務器本身配置文件的<Directory>小節部分處理,但有時我們根本沒有權限訪問這個配置文件,尤其是當我們在一臺共享的托管主機上,大多數共享主機服務商只允許我們以.htaccess方式來改變服務器的行為。

.htaccess文件是一個簡單的文本文件,注意文件名前的“.”很重要,我們可以用自己喜歡的文本編輯器編輯它,然后上傳到我們的服務器,將其放在我們想要改變服務器默認行為的目錄下。

通過.htaccess文件我們可以做的事包括:為文件夾設置密碼保護,創建重定向,調整PHP設置,控制文件緩存,控制服務器如何處理擴展名(例如,我們可以讓一個HTML文件通過PHP模塊運行,而不是簡單的通過Web服務器解析它),以及改變文件返回給訪問者的方式。下面我開始介紹這個文件最常見的8種用法。

1、禁止對無索引文件的目錄進行文件列表展示

默認情況下,當我們訪問網站的某個無索引文件(如index.html,index.htm或index.php)目錄時,服務器會顯示該目錄的文件和子目錄列表,這是非常危險的,因為它可能暴露網站的內部結構,也許不小心就將含有敏感信息的文件公之于眾了,為了禁止這種行為,我們可以在網站根目錄創建一個.htaccess文件,內容如下:
Options –Indexes

2、創建重定向或改變丟失文件的響應狀態

當我們從服務器請求一個找不到的文件時,默認情況下服務器會返回404狀態碼,瀏覽器和訪問者便知道URL指定的位置找不到該文件,但這是一個通用的消息,沒有太大的實際意義,我們希望告訴瀏覽器和訪問者更多有用的信息,如:

◆文件被永久移走

狀態碼301告訴瀏覽器文件已經被永久移動到另一個位置,這樣我們就可以通過.htaccess文件實現重定向了,例如,使用下面的代碼可以將瀏覽器重定向到新的地址:

Redirect 301 /path/from/htaccess/file.html http://www.domain.tld/path/file.html

◆文件被暫時移走

狀態碼307告訴瀏覽器文件已經被移走,但這是暫時的,瀏覽器接收到301狀態碼時就會訪問新地址,但不用改變文件的鏈接,也不會為新地址創建緩存(除非它受Cache-Control或過期頭信息字段控制),瀏覽器每次都會繼續請求源地址。

Redirect 307 /path/from/htaccess/file.html http://www.domain.tld/path/file.html

◆文件不存在

狀態碼410告訴瀏覽器,它請求的文件已經從服務器上永久刪除,和404不一樣,404僅僅表示文件不在這里的意思,而410表示文件不僅不在這里,在其它地方也沒有。

  1. Redirect 410 /path/from/htaccess/file.html  
  2.  

3、創建自定義錯誤響應頁面

如果不向瀏覽器返回狀態碼,我們可以創建自己的錯誤頁面,我們可以創建一個自定義錯誤頁面,例如,對于401狀態碼我們可以創建一個未經授權的錯誤頁面,對于404狀態碼,我們可以創建一個未找到錯誤頁面,我們需要做的就是修改.htaccess文件,添加下面兩行代碼:

  1. ErrorDocument 401 /path/to/401.html  
  2. ErrorDocument 404 /path/to/404.html  
  3.  

4、給不同類型的文件設置緩存過期時間

這個設置告訴瀏覽器保持文件的緩存多長時間,在未過期前,訪問該文件時就不用向服務器發起請求了,服務器向瀏覽器返回文件時,會附加上一個Expires頭信息。
我們可以使用ExpiresDefault指令后面跟一個基礎時間+時間長度設置文件的默認過期時間,使用ExpiresByType指令后面跟一個文件類型+基礎時間+時間長度指定特定文件類型的過期時間。

基礎時間可以是訪問時間,它從瀏覽器請求該文件時開始計數,也可以是修改時間,它從文件最后一次修改時間開始計數,注意,如果你使用修改時間,返回給瀏覽器的動態內容不會加上Expires頭,如動態生成的圖像,因為非已存在的文件不存在修改時間。

過期時間要和基礎時間結合使用,通過添加一個plus和一個時間,這個時間可以給出年、月、日,時、分、秒,如果我們只使用一個單位,可以使用單數表示,例如,我們可以指定它為“1分鐘”或“10分鐘”。

在下面的例子中,我使用ExpiresDefault指令將所有文件的默認過期時間設為1天,然后使用ExpiresByType指令為不同文件類型指定過期時間。

  1. <ifModule mod_expires.c> 
  2.     ExpiresActive On  
  3.     ExpiresDefault "access plus 1 day"  
  4.     ExpiresByType image/png "access plus 30 days"  
  5.     ExpiresByType image/jpeg "access plus 4 weeks"  
  6.     ExpiresByType image/gif "access plus 1 month"  
  7.     ExpiresByType image/x-icon "access plus 1 year"  
  8.     ExpiresByType application/javascript "modification plus 2 weeks"  
  9.     ExpiresByType text/css "modification plus 14 days"  
  10. </ifModule> 

5、文件發送到瀏覽器之前先壓縮

任何現代瀏覽器都能處理服務器壓縮過的文件,這樣做也是為了減少頁面的載入時間,如果服務器默認沒有開啟文件壓縮功能,我們可以通過.htaccess文件來開啟。

AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript application/x-javascript application/rss+xml application/atom_xml text/javascript

注意,我這里沒有為圖像文件開啟壓縮,因為我們的圖像文件已經通過其它壓縮技術處理好了。

6、給文件夾設置密碼保護

為了保護含有敏感數據的特殊文件夾,我們需要創建一個包含有效的用戶名和密碼的文件,然后在.htaccess文件中添加一些設置,但用戶名和密碼仍然是以明文形式發送到服務器的,因此很容易受到中間人攻擊,除非我們使用SSL。

首先,我們創建一個名為.htpasswd的文件,將權限修改為600(只有文件所有者有讀寫權),這樣其他用戶才不能訪問。

  1. touch .htpasswd  
  2. chmod 600 .htpasswd  
  3.  

創建好文件后,我們需要向這個文件注入用戶名和密碼,如果你使用Linux或Unix類操作系統,使用htpasswd命令就可以辦到,如果你能通過SSH登陸到你的服務器,那么你可以使用htpasswd管理.htpasswd文件中的用戶名和密碼,如果不行,還有很多在線工具(如http://www.htaccesstools.com/htpasswd-generator/)可以幫助你生成.htpasswd文件中使用的密碼。

使用下面的命令可以向這個文件中注入用戶名和密碼:

  1. htpasswd [passwd file] [user]  

如:

  1. htpasswd .htpasswd juan  
  2.  

它會提示你輸入密碼,然后他會加密密碼并保存到.htpasswd文件中。如果Apache是安裝在除Windows,Netware和TPF(一種IBM大型機)外的任何系統上,默認情況下下,它會調用crypt()函數加密密碼。使用這個命令我們可以創建多個用戶,并可以修改已有用戶的密碼,你可以使用-n參數獲得加密后的密碼字符串值。

  1. htpasswd -n juan  
  2.  

它會返回類似下面這樣的字符串:

  1. juan:n94xSo6uSwhCY  

然后用文本編輯器打開.htpasswd文件,將上面返回的內容粘貼到文件中,每行代表一個用戶。

還可以使用-m參數調用md5加密方法加密密碼,在Windows,Netware和TPF下,默認就使用的是md5加密,也可以適應-s參數調用SHA加密,使用-d參數告訴命令調用crypt函數,在大多數系統上,這也是默認的行為。

如果文件不存在,則添加-c參數,它會創建文件,如果文件已經存在,添加這個參數后就會重寫整個文件,只留下新創建的用戶,如果想刪除.htpasswd文件中的某個用戶,使用-D參數。

最后,我們可以和其它命令結合使用,如果加入參數-b,我們可以直接在命令中加上密碼,但這樣做是不安全的。

htpasswd .htpasswd juan randompassword

創建好用戶后,他們就可以訪問這個目錄及其子目錄了,但我們還需要在要保護的文件夾下添加一個.htaccess文件,內容如下:

  1. AuthName "Please authenticate in order to access the contents of this folder"  
  2. AuthType Basic  
  3. AuthUserFile /full/path/to/.htpasswd  
  4. Require valid-user  
  5.  

這里的AuthName指的是要求你輸入用戶名和密碼時的提示信息,AuthType表示需要的認證類型,在這個例子中,我只想彈出一個對話框,要求輸入用戶名和密碼,因此設置為Basic,AuthUserFile指的是保存用戶名和密碼的文件位置,在這個例子中指的是.htpasswd文件,位置和我們的.htaccess文件相同,Require valid-user指定只有.htpasswd文件包含的合法用戶才能訪問。

7、將HTML文件當PHP文件使

為了將html擴展名文件當作php文件使用,需要在.htaccess文件中添加下面的內容:

  1. AddType application/x-httpd-php .htm  
  2. AddType application/x-httpd-php .html  
  3.  

這樣服務器就會把HTML文件作為PHP文件進行解析。

8、修改PHP設置

如果我們不能訪問php.ini文件,有些主機服務商允許我們修改.htaccess文件來改變一些PHP設置,例如,我想生成所上傳圖片的縮略圖,有些主機服務商默認將PHP的內存限制為2MB,顯然要生成縮略圖是不夠用的,因此我要將這個限制改大一點,如增加到16MB,如果要移除內存限制,可以將其設為-1。
為了在.htaccess文件中修改PHP設置,服務器必須啟用了AllowOverride Options(或AllowOverride all)選項,如果那樣,我們只需要在.htaccess文件中添加下面一行命令即可:

  1. php_value memory_limit 16M  
  2.  

 

【閱讀推薦】

  1. Google推出Apache加速模塊 速度提高50%!
  2. Web服務器市場:Apache坐穩領頭羊 Nginx持續走高
  3. Web服務器父與子 Apache和Tomcat區別

原文:My most used htaccess settings
鏈接
http://www.jveweb.net/en/archives/2010/11/my-most-used-htaccess-settings.html

 

責任編輯:佚名 來源: 51CTO.com
相關推薦

2010-09-08 10:00:09

.htaccess文件Apache配置

2011-07-07 10:35:53

htaccess

2017-03-09 15:32:04

Linux.htaccessWeb目錄

2023-03-21 18:46:53

2014-04-18 09:55:49

Tomcat 8NIO 2

2014-10-09 09:46:01

Apache模塊

2014-05-16 09:38:14

2015-03-24 09:22:54

2014-06-26 11:28:30

Tomcat 8

2019-11-21 10:20:05

SQL錯誤用法數據庫

2019-07-22 14:50:08

數據庫SQL索引

2020-09-13 09:22:51

Linuxls命令

2018-03-07 13:30:09

數據庫Redis

2019-10-08 16:24:33

Chrome瀏覽器

2024-11-21 12:55:11

Promise異步操作

2010-01-11 18:10:40

Linux iso文件

2019-05-31 15:10:33

SQL數據庫MySQL

2019-02-28 19:45:06

SQL錯誤用法數據庫

2020-04-27 20:55:42

JavaJava 8編程語言

2020-08-19 10:21:49

云計算Kubernetes技術
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本精品一区二区三区在线观看视频 | 国产精品一区2区 | 日本a级大片 | 黄色免费av | 成人免费网站www网站高清 | 黄视频网站免费观看 | 国产一区二区久久 | 蜜桃视频在线观看免费视频网站www | 免费一看一级毛片 | 精品国产一二三区 | 免费在线观看一区二区 | 夜夜干夜夜操 | 精品二区视频 | 中文字幕一区二区三区不卡在线 | 亚洲精品久久久一区二区三区 | 亚洲一区二区三区免费在线观看 | 国产精品不卡视频 | 三级黄视频在线观看 | 国产午夜视频 | 亚洲视频在线播放 | 久久久中文 | 亚洲成人观看 | 精品一二区 | 国产午夜精品久久 | 99热免费在线| 日韩在线免费视频 | 黄色网址av | 久久久久国产一区二区三区 | 国产精品自拍视频网站 | 日韩视频精品在线 | 你懂的在线视频播放 | 久久精品成人 | 色综合色综合 | 美女爽到呻吟久久久久 | 色婷婷av久久久久久久 | 国产精品视频免费看 | 色橹橹欧美在线观看视频高清 | 国产精品伦理一区 | 日韩在线观看精品 | 国产精品免费一区二区三区 | 91社区在线观看高清 |