PHP偽靜態Rewrite設定之APACHE篇,rewriteapache_PHP教程

來源:互聯網
上載者:User

PHP偽靜態Rewrite設定之APACHE篇,rewriteapache


一、Apache配置:

1、支援httpd.conf 配置
2、支援目錄 .htaccess配置(一種"分布式配置"檔案針對虛擬空間,空間商不讓修改Apache設定檔)

啟用Rewrite(httpd.conf)
(有時候Options Indexes FollowSymLinks會出問題,只需要配置Options all即可)

LoadModule rewrite_module modules/mod_rewrite.so


啟用.htaccess
AllowOverride None 修改為:AllowOverride All

二、mod_rewrite 規則:
例如:

RewriteEngine on              ->啟動rewrite引擎 RewriteRule ^/test([0-9]*).html$ /test.php?id=$1    ->指訪問test加任意欄位.html都能跳轉到test.php    正則匹配的欄位存放在虛擬記憶體匹配$1


三、mod_rewrite規則修正符

1) R 強制外部重新導向
2) F 禁用URL,返回403HTTP狀態代碼。
3) G 強制URL為GONE,返回410HTTP狀態代碼。
4) P 強制使用代理轉寄。
5) L 表明當前規則是最後一條規則,停止分析以後規則的重寫。
6) N 重新從第一條規則開始運行重寫過程。
7) C 與下一條規則關聯

如果規則匹配則正常處理,以下修正符無效

8) T=MIME-type(force MIME type) 強制MIME類型
9) NS 只用於不是內部子請求
10) NC 不區分大小寫
11) QSA 追加請求字串
12) NE 不在輸出轉義特殊字元 \%3d$1 等價於 =$1


例如:

RewriteRule ^/new([0-9]*)/$ /new.php?id=$1 [R]



簡單小範例:

RewriteEngine onRewriteRule ^/in(.*).html$ /index.php


PHP+Apache配置偽靜態問題

在網站的根目錄建立一個.htaccess這樣的檔案
然後你寫上偽靜態UEL規則
RewriteEngine On
RewriteRule ^(.*)content-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/index\.php\?m=content&c=index&a=show&catid=$2&id=$3&page=$4
RewriteRule ^(.*)show-([0-9]+)-([0-9]+)-([0-9]+).html$ $1/index\.php\?m=content&c=index&a=show&catid=$2&id=$3&page=$4
RewriteRule ^(.*)list-([0-9]+)-([0-9]+).html$ $1/index\.php\?m=content&c=index&a=lists&catid=$2&page=$3

這樣就配置完成了
PS:偽靜態URL規則可以在網上找的


 

apache 偽靜態 配置

1.檢測Apache是否支援mod_rewrite 通過php提供的phpinfo()函數查看環境配置,通過Ctrl+F尋找到“Loaded Modules”,其中列出了所有apache2handler已經開啟的模組,如果裡麵包括“mod_rewrite”,則已經支援,不再需要繼續設定。
如果沒有開啟“mod_rewrite”,則開啟目錄 您的apache安裝目錄“/apache/conf/” 下的 httpd.conf 檔案,通過Ctrl+F尋找到“LoadModule rewrite_module”,將前面的”#”號刪除即可。
如果沒有尋找到,則到“LoadModule” 地區,在最後一行加入“LoadModule rewrite_module modules/mod_rewrite.so”(必選獨佔一行),然後重啟apache伺服器即可。

2.讓apache伺服器支援.htaccess
修改httpd.conf檔案

Options FollowSymLinks
AllowOverride None
改為
Options FollowSymLinks
AllowOverride All

注意:除了要設定上面的地方以後,還得設定一下下面這個(網上很多資料都沒有講到這一塊),否則你將會配製失敗, 把 DocumentRoot 後面的參數改為你以磁碟為基礎的網站的目錄 例如你網站的根目錄為 D:/web/ 則得設定為 DocumentRoot "D:/web/" 也就是修改目前的目錄

此步驟設定好後也得重啟apache伺服器才會生效

3.建立.htaccess 檔案
建立 htaccess.txt
用記事本 開啟,點擊檔案–另存新檔,在檔案名稱視窗輸入”.htaccess”,然後點擊儲存。此檔案得儲存在網站的根目錄

4.填寫網站偽靜態規則 (需要 瞭解 Regex)



RewriteEngine on

RewriteRule index.html$ index.php
RewriteRule index-([1-9]+[0-9]*).html$ index.php?p=$1

</IfModule>

希望能夠幫到你和網上的其它朋友,曾經我也在上面絞盡腦汁。
 

http://www.bkjia.com/PHPjc/854359.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/854359.htmlTechArticlePHP偽靜態Rewrite設定之APACHE篇,rewriteapache 一、Apache配置: 1、支援httpd.conf 配置 2、支援目錄 .htaccess配置(一種"分布式配置"檔案針對虛擬空...

  • 聯繫我們

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