国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

htaccess語法教程

2024-07-21 02:02:27
字體:
來源:轉載
供稿:網友
雖然以前的文章沒有了,但我至少得保證原來到域名能夠繼續訪問到新的博客,瀏覽到新的文章,于是想起用htaccess來做重定向。這次對htaccess的寫法做個記錄,免得今后還要到處搜羅。

這是我這次用到的幾條重定向規則
復制代碼 代碼如下:

RewriteEngine on
#silentash全局切換
Rewritecond %{HTTP_HOST} ^(www/.)?silentash.com$ [nc]
Rewriterule ^(.*)$ http://VeVb.com/$1 [r=301,nc]
#blog對應切換
Rewritecond %{HTTP_HOST} ^blog.silentash.com$ [nc]
Rewriterule ^(.*)$ http://VeVb.com/blog [r=301,nc]
#app對應切換
Rewritecond %{HTTP_HOST} ^app.silentash.com$ [nc]
Rewriterule ^(.*)$ http://VeVb.com/app/$1 [r=301,nc]
#lab對應切換
Rewritecond %{HTTP_HOST} ^lab.silentash.com$ [nc]
Rewriterule ^(.*)$ http://VeVb.com/lab/$1 [r=301,nc]
#photo對應切換
Rewritecond %{HTTP_HOST} ^photo.silentash.com$ [nc]
Rewriterule ^(.*)$ http://VeVb.com/photo/$1 [r=301,nc]
#只訪問主域的先切換到博客
Rewritecond %{HTTP_HOST} ^(www.)?VeVb.com$ [nc]
Rewritecond %{REQUEST_URI} ^(//)?$ [nc]
Rewriterule ^(.*)$ http://VeVb.com/blog [r=301,nc]

下面簡單解說下上面的意思:

【RewriteEngine On】表示重寫引擎開,關閉off,關閉的話當然就不能做轉發了。

【Rewritecond %{HTTP_HOST} ^(www/.)?silentash.com$ [nc]】
這是重寫條件,前面%{HTTP_HOST}表示當前訪問的網址,只是指前綴部分,格式是www.silentash.com不包括“http://”和“/”,^表示字符串開始,$表示字符串結尾,/.表示轉義的. ,如果不轉義也行,推薦轉義,防止有些服務器不支持,?表示前面括號www/.出現0次或1次,這句規則的意思就是如果訪問的網址是silentash.com或者www.silentash.com就執行以下的語句,不符合就跳過。

【Rewriterule ^(.*)$ http://VeVb.com/$1 [r=301,nc]】
這個根據之前的條件執行相應的規則,在這里的話就是讓重定向到VeVb.com域下面相應地址,比如來源地址是http://www.silentash.com/abc/1.html,前部分的^(.*)$將會匹配當前請求的url,不過這里到底是匹配整個http://www.silentash.com/abc/1.html,還是只匹配/abc/1.html即反斜杠后面的成分,還是只匹配abc/1.html?

答案是:根據RewriteBase規則規定,如果rewritebase 為/,將會匹配abc/1.html,默認應該是abc/1.html。后面的$1是正則匹配出來的值,經過組合,之前的url會被重定向為http://VeVb.com/abc/1.html,達到了域名轉換的目的。

后面幾行大同小異。

還有一個問題是,不能保證每個人輸入的網址都是小寫的,如果輸入大寫的呢,linux系統是區分大小寫的,所以應該在RewriteCond后添加[NC]忽略大小寫的。

下面附上簡單的語法規則和flags:
【RewriteCond語法:】
RewriteCond TestString CondPattern [flags]
rewritecond的其他用法:
‘-d'(目錄)
將TestString視為一個路徑名并測試它是否為一個存在的目錄。
‘-f'(常規文件)
將TestString視為一個路徑名并測試它是否為一個存在的常規文件。
‘-s'(非空的常規文件)
將TestString視為一個路徑名并測試它是否為一個存在的、尺寸大于0的常規文件。
‘-l'(符號連接)
將TestString視為一個路徑名并測試它是否為一個存在的符號連接。
‘-x'(可執行)
將TestString視為一個路徑名并測試它是否為一個存在的、具有可執行權限的文件。該權限由操作系統檢測。
‘-F'(對子請求存在的文件)
檢查TestString是否為一個有效的文件,而且可以在服務器當前的訪問控制配置下被訪問。它使用一個內部子請求來做檢查,由于會降低服務器的性能,所以請謹慎使用!
‘-U'(對子請求存在的URL)
檢查TestString是否為一個有效的URL,而且可以在服務器當前的訪問控制配置下被訪問。它使用一個內部子請求來做檢查,由于會降低服務器的性能,所以請謹慎使用!

【RewriteRule語法:】
RewriteRule Pattern Substitution [flags]

【flags】:

‘chain|C'(鏈接下一規則)
此標記使當前規則與下一個規則相鏈接。它產生這樣的效果:如果一個規則被匹配,則繼續處理其后繼規則,也就是這個標記不起作用;如果該規則不被匹配,則其后繼規則將被跳過。比如,在一個目錄級規則中執行一個外部重定向時,你可能需要刪除”.www”(此處不應該出現”.www”)。

‘cookie|CO=NAME:VAL:domain[:lifetime[:path]]'(設置cookie)
在客戶端設置一個cookie。cookie的名稱是NAME,值是VAL。domain是該cookie的域,比如'.apache.org',可選的lifetime是cookie的有效期(分鐘),可選的path是cookie的路徑。
‘env|E=VAR:VAL'(設置環境變量)
此標記將環境變量VAR的值為VAL,VAL可以包含可擴展的正則表達式反向引用($N和%N)。此標記可以多次使用以設置多個變量。這些變量可以在其后許多情況下被間接引用,通常是在XSSI(<!

主站蜘蛛池模板: 普定县| 宁阳县| 湘潭县| 赞皇县| 大余县| 阿坝| 大方县| 定南县| 九江市| 黄平县| 留坝县| 福贡县| 赤城县| 建瓯市| 包头市| 海宁市| 夹江县| 沾益县| 新晃| 腾冲县| 襄汾县| 河北区| 高平市| 家居| 喀喇| 两当县| 乌拉特中旗| 革吉县| 博野县| 堆龙德庆县| 莱芜市| 孝义市| 易门县| 钟山县| 绩溪县| 林甸县| 沙坪坝区| 义马市| 贵溪市| 两当县| 灵山县|