日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

.htaccess的重写规则

發布時間:2023/11/27 生活经验 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .htaccess的重写规则 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

.htaccess基本語法和應用

.htaccess是Apache服務器的一個非常強大的分布式配置文件。
正確的理解和使用.htaccess文件,可以幫助我們優化自己的服務器或者虛擬主機。

如何啟用htaccess

以windows為例,進入apache/conf目錄,找到httpd.conf文件,去掉
LoadModule rewrite_module modules/mod_rewrite.so
前面的#,然后設置目錄屬性AllowOverride All,重啟apache即可

常見格式

下面是一個典型的htaccess文件

# 開啟URL重寫
RewriteEngine on
# URL重寫的作用域
RewriteBase /path/to/url
# 滿足怎樣的條件
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
# 應用怎樣的規則
RewriteRule .? http://www.example.com%{REQUEST_URI} [R=301,L]

?

來看看RewriteCond,首先有一個%,因為{HTTP_HOST}是一個apache變量,需要用%來指示。從!開始就是匹配的條件,支持 正則。!表示不等于,這句話的意思就是:如果HTTP_HOST不是www.example.com。后面的[NC](no case)表示忽略大小寫,常見的還有

  • [L](last):終止一系列的RewriteCond和RewriteRule
  • [R](redirect):觸發一個顯示的跳轉,也可以指定跳轉類型,如[R=301]
  • [F](forbidden):禁止查看特定文件,apache會觸發403錯誤

典型應用

圖片防盜鏈

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?example\.com/ [NC]
RewriteRule \.(gif|jpg|png)$ - [F]

由于是基于HTTP_REFERER的驗證,所以只能防止一般的圖片盜鏈,因為HTTP_REFERER是比較容易偽造的

自定義404錯誤頁面
如果用戶輸入了一個不存在的url,那么就顯示自定義的錯誤頁面

ErrorDocument 404 /404.html
# 其他同理
ErrorDocument 500 /500.html

處理移動過的文件

Redirect 301 /old.html http://yoursite.com/new.html
?
# 也可以是下面這樣
RewriteRule /old.html http://yoursite.com/new.html [R=301,L]
?
# 如果想隱式跳轉(URL地址不變,但實際上內容是其他URL的),就使用下面的
RewriteRule /old.html http://yoursite.com/new.html [L]

對于RewriteRule還有好多文章可以做,比如

?
# 把html后綴的url鏈接到php文件
# $1指代的是前面第1個用括號括起來的內容
RewriteRule ^/?([a-z/]+)\.html$ $1.php [L]
# 或者把舊文件夾的內容鏈接到新文件夾
RewriteRule ^/?old_directory/([a-z/.]+)$ new_directory/$1 [R=301,L]
?
# 隱藏文件名
RewriteRule ^/?([a-z]+)$ $1.php [L]

禁止顯示目錄列表

如果目錄里沒有index文件,又沒有對該目錄做過特別的處理,尤其是windows主機,那么該目錄里的內容就會顯示出來,這時可以在根目錄創建 一個.htaccess文件,然后寫上

Options -Indexes
# 就這么一句就搞定了

?

阻止/允許特定IP/IP段

# 禁止所有IP,除了指定的
order deny,allow
deny from all
# 如果想允許IP段,如123.123.123.0 ~ 123.123.123.255,則
# allow from 123.123.123.
allow from 123.123.123.123ErrorDocument 403 /page.html<Files page.html>
allow from all
</Files>
#如果想禁止特定IP
deny from 123.123.123.123

添加MIME類型

AddType video/x-flv .flv
# 如果設置類型為 application/octet-stream 將提示下載
AddType application/octet-stream .pdf

?

總結

以上是生活随笔為你收集整理的.htaccess的重写规则的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。