PHP 偽靜態 4 實際運用

2021-09-06 10:35:33 字數 2523 閱讀 9986

偽靜態的實際運用

1. 在乙個專案中有兩個資料夾,public和private, public資料夾的可以被所有人訪問,private只能被自己訪問。如何實現?

第乙個方法是:

在public和private下建立.htaccess檔案,對於private只讓127.0.0.1訪問,public資料夾都可以訪問。

private資料夾下的配置

order deny,allow      #注意deny,allow中間不能由空格

deny from all

allow from 127.0.0.1

這個的缺點是,沒有辦法去控制本apache的另外乙個虛擬主機的請求。

另外這個不夠精細化,他會**所有的資源,不僅僅是。

於是我們就換乙個思路,使用http的referer的防盜煉技術。

第二個方法是:

在private資料夾下寫乙個.htaccess檔案

rewriteengine on

# rewritecond:滿足某個條件則放行,不被rewriterule束縛

# http協議,如果是外網來的必須帶乙個referer

# 如果請求頭不是hsp.fi就**

# 但是可以自己模擬乙個http請求頭,這樣就可以取出!

rewritecond % !hsp.fi

#[f] - forbidden, 如果請求的是jpg,則禁用

注意:如果rewritecond有多個條件則:

rewriteengine on

# rewritecond:滿足某個條件則放行,不被rewriterule束縛

# http協議,如果是外網來的必須帶乙個referer

# 如果請求頭不是hsp.fi就**

# 但是可以自己模擬乙個http請求頭,這樣就可以取出!

rewritecond % !hsp.fi

rewritecond % !-f

#[f] - forbidden, 如果請求的是jpg,則禁用

#可以配置多份

課堂練習:

配置乙個**.answer.fi

1. 配置vhost, 注意allowoverwrite all

2. 配置host

3. 建乙個資料夾answer

4. 建立error, public, private目錄,和welcome.html, .htaccess檔案

.htaccess檔案中的配置

allow from all

#配置首頁面

directoryindex welcome.html

errordocument 404 /error/404.html

5. 在error目錄下放404.html頁面

6. 在public目錄下做配置

allow from all

7. 在private目錄下做配置

補充說明:

1. 關於404的說明:

對於ie瀏覽器而言,404頁面的內容大小不能低於512b位元組。

2. 如果在節點配置了 options indexes,同時你又啟用了rewriteengine on你會看到403的提示. 原因是因為我們的父級目錄的options 本身就配好了 options indexes followsymlinks,

我們要不不配置要麼就平配一樣的,重寫一遍。

偽靜態實際運用2:

實現:rewriterule ([a-za-z_]+)\/([a-za-z]+) index.php?c=$1&a=$2

運用3:

rewritecond指令的介紹

如何做到,當abc.html存在就直接訪問abc.html, 否則就去訪問index.php?

#如果請求的abc.html不是乙個檔案就走index, 如果是乙個檔案就不走過濾機制

rewritecond % !-f

#並且不是乙個目錄

rewritecond % !-d

rewriterule abc.html index.php

偽靜態實際運用4:

PHP 偽靜態技術

下面是生成偽靜態位址和逆轉偽靜態位址的兩個函式,這兩個函式在相應的位置引用就可以實現將轉成這樣的形式。使用參考 將此ion list page 2 位址生成 action list page 2.htm形式 url ion list page 2 urlstr makeurlhtml url ech...

PHP偽靜態步驟

header content type text html charset utf 8 dsn mysql host localhost dbname seven db new pdo dsn,root db exec set names utf8 分頁 count 11 page size 3 總...

php偽靜態配置

配置虛擬主機和偽靜態 1.開啟apache的rewrite模組 loadmodule rewrite module modules mod rewrite.so 2.開啟虛擬主機功能 3.修改conf extra httpd vhosts.conf檔案 documentroot f wamp www...