【轉】APACHE RewriteEngine用途

來源:互聯網
上載者:User

標籤:pid   safe   sdn   case   使用者   服務   error   extract   secret   

首先要學會怎麼設定

httpd.conf 的設定, 什麼 ALL 就不用用說了

要看你的 httpd.conf 是否設定正確了,很簡單,只要你在 .htaccess  裡隨便錄入一些 比如 adbasdfasdf 之類的檔案,儲存,設定 htaccess 是不用重啟 apache 的, 這時看下是不是網頁上顯示的亂碼,如果是,說明你的httpd.conf 配置是正確的

義烏網路公司 技術人員經過測試,htaccess 裡的內容作偽靜態時, 正確的寫法是這樣的:

RewriteEngine On
RewriteRule list/(\d+)\.html$ 1.PHP?str=$1

RewriteEngine On
RewriteRule ^list/(\d+)\.html$ 1.php?str=$1

RewriteEngine On
RewriteRule ^(.*)list/(\d+).html$ 1.php?str=$2

RewriteEngine On
RewriteRule ^(.*)list/(\d+)\.html$ $1/1.php?str=$2


這裡的 ^(.*)list/(\d+)\.html$  只能這樣寫。

如下寫法在我的測試中都是錯誤的:

1. ^/list/(\d+)\.html$

2. ^(.*)/list/(\d+)\.html$


下面說有哪些用途?

 


1.時區設定

有些時候,當你在PHP裡使用date或mktime函數時,由於時區的不同,它會顯示出一些很奇怪的資訊。下面是解決這個問題的方法之一。就是設定你的伺服器的時區。你可以在這裡找到所有支援的時區的清單。

SetEnv TZ Australia/Melbourne 

 

2. 搜尋引擎友好的301永久轉向方法

為什麼這是搜尋引擎友好的呢?因為現在很多現代的搜尋引擎都有能根據檢查301永久轉向來更新它現有的記錄的功能。

Redirect 301 http://www.aqee.NET/home http://www.aqee.net/ 

3. 屏蔽下載對話方塊

通常,當你下載東西的時候,你會看到一個對話方塊詢問你是保持這個檔案還是直接開啟它。如果你不想看到這個東西,你可以把下面的一段代碼放到你的.htaccess檔案裡。

AddType application/octet-stream .pdf 

AddType application/octet-stream .zip 

AddType application/octet-stream .mov 

4. 省去www首碼

SEO的一個原則是,確保你的網站只有一個URL。因此,你需要把所有的通過www的訪問轉向的非www,或者反這來。

RewriteEngine On 

RewriteBase / 

RewriteCond %{HTTP_HOST} ^www.aqee.Net [NC] 

RewriteRule ^(.*)$ http://aqee.net/$1 [L,R=301] 

5. 個人化Error頁面

對每個錯誤碼定製自己個人化的錯誤頁面。

ErrorDocument 401 /error/401.php 

ErrorDocument 403 /error/403.php 

ErrorDocument 404 /error/404.php 

ErrorDocument 500 /error/500.php 

6. 壓縮檔

通過壓縮你的檔案體積來最佳化網站的訪問速度。

# 壓縮 text, html, JavaScript, css, xml: 

AddOutputFilterByType DEFLATE text/plain 

AddOutputFilterByType DEFLATE text/html 

AddOutputFilterByType DEFLATE text/xml 

AddOutputFilterByType DEFLATE text/css 

AddOutputFilterByType DEFLATE application/xml 

AddOutputFilterByType DEFLATE application/xhtml+xml 

AddOutputFilterByType DEFLATE application/rss+xml 

AddOutputFilterByType DEFLATE application/javascript 

AddOutputFilterByType DEFLATE application/x-javascript 

7. 快取檔案

快取檔案是另外一個提高你的網站訪問速度的好方法。

<FilesMatch “.(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$”> 

Header set Cache-Control “max-age=2592000″ 

</FilesMatch> 

8. 對某些檔案類型禁止使用緩衝

而另一方面,你也可以定製對某些檔案類型禁止使用緩衝。

# 顯式的規定對指令碼和其它動態檔案禁止使用緩衝 

<FilesMatch “.(pl|php|cgi|spl|scgi|fcgi)$” > 

Header unset Cache-Control 

</FilesMatch> 

安全問題

下面的htaccess代碼能夠提高你的web伺服器的安全水平。圖片連結盜用保護非常有用,它能防止其他人偷盜使用你的伺服器上的圖片資源。

1. 通過.htaccess放盜鏈

痛恨那些偷盜連結你的web伺服器上的圖片資源而耗盡了你的頻寬的行為嗎?試試這個,你可以防止這種事情的發生。

RewriteBase / 

RewriteCond %{HTTP_REFERER} !^$ 

RewriteCond %{HTTP_REFERER} !^http://(www.)?aqee.net/.*$ [NC] 

RewriteRule .(gif|jpg|swf|flv|png)$ /feed/ [R=302,L] 

2. 防駭客

如果你想提高網站的安全等級,你可以去掉下面的幾行代碼,這樣可以防止一些常見惡意URL匹配的駭客攻擊技術。

RewriteEngine On   

# proc/self/environ? 沒門! 

RewriteCond %{QUERY_STRING} proc/self/environ [OR] 

# 阻止指令碼企圖通過URL修改mosConfig值 

RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR] 

# 阻止指令碼通過URL傳遞的base64_encode垃圾資訊 

RewriteCond %{QUERY_STRING} base64_encode.*(.*) [OR] 

# 阻止在URL含有<script>標記的指令碼 

RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR] 

# 阻止企圖通過URL設定PHP的GLOBALS變數的指令碼 

RewriteCond %{QUERY_STRING} GLOBALS(=|[|\%[0-9A-Z]{0,2}) [OR] 

# 阻止企圖通過URL設定PHP的_REQUEST變數的指令碼 

RewriteCond %{QUERY_STRING} _REQUEST(=|[|\%[0-9A-Z]{0,2}) 

# 把所有被阻止的請求轉向到403禁止提示頁面! 

RewriteRule ^(.*)$ index.php [F,L] 

3. 阻止訪問你的 .htaccess 檔案

下面的代碼可以阻止別人訪問你的.htaccess檔案。同樣,你也可以設定阻止多種檔案類型。

# 保護你的 htaccess 檔案 

<Files .htaccess> 

order allow,deny 

deny from all 

</Files> 

# 阻止查看指定的檔案 

<Files secretfile.jpg> 

order allow,deny 

deny from all 

</Files> 

#多種檔案類型 

<FilesMatch “.(htaccess|htpasswd|ini|phps|fla|psd|log|sh)$”> 

Order Allow,Deny 

Deny from all 

</FilesMatch> 

4. 重新命名htaccess 檔案

你可以通過重新命名htaccess檔案來對其進行保護。 
AccessFileName htacc.ess 

5. 禁止瀏覽目錄

禁止伺服器對外顯示目錄結構,反之亦然。

# 禁止瀏覽目錄 

Options All -Indexes 

# 開放瀏覽目錄

Options All +Indexes 

6. 改變預設的Index頁面

你可以把預設的 index.html, index.php 或 index.htm 改成其它頁面。

DirectoryIndex business.html 

7. 通過引用資訊來阻止某些不歡迎的瀏覽者

# 阻止來自某網站的使用者 

<IfModule mod_rewrite.c> 

RewriteEngine on 

RewriteCond %{HTTP_REFERER} scumbag.com [NC,OR] 

RewriteCond %{HTTP_REFERER} wormhole.com [NC,OR] 

RewriteRule .* - [F] 

</ifModule> 

8. 通過判斷瀏覽器頭資訊來阻止某些請求

這個方法可以通過阻止某些機器人或蜘蛛爬蟲抓取你的網站來節省你的頻寬流量。

# 阻止來自某些特定網站的使用者 

<IfModule mod_rewrite.c> 

SetEnvIfNoCase ^User-Agent$ .*(craftbot|download|extract|stripper|sucker|ninja|clshttp|webspider
|leacher|collector|grabber|webpictures) HTTP_SAFE_BADBOT 

SetEnvIfNoCase ^User-Agent$ .*(libwww-perl|aesop_com_spiderman) HTTP_SAFE_BADBOT 

Deny from env=HTTP_SAFE_BADBOT 

</ifModule> 

9. 禁止指令碼執行,加強你的目錄安全

# 禁止某些目錄裡的指令碼執行許可權 

AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi 

Options -ExecCGI 

轉自:http://blog.csdn.net/alexdream/article/details/8979225

【轉】APACHE RewriteEngine用途

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.