深圳網(wǎng)站制作htaccess 實現(xiàn)URL重寫

2013-11-07    分類: 網(wǎng)站制作

成都網(wǎng)站制作htaccess 實現(xiàn)URL重寫

使用 .htaccess 進行 URL 重寫的幾個簡單方法
.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.php [L,QSA]
# http://domain/about -> http://domain/about.php

--------------------------------------------------

.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
# http://domain/about -> http://domain/index.php?q=about

// $url_data is an array
$url_data = explode("/",$HTTP_SERVER_VARS['PATH_INFO']);


Apache和Resin組合時UrlRewriteFilter失效的解決方法
目前在Spring3.0的官方example中都使用UrlRewriteFilter來做偽靜態(tài),單獨運行在Resin等JavaEE Web容器中的時候一切都OK,但是一旦與Apache一起組合的時候總是會出現(xiàn)404或403錯誤,當(dāng)然UrlRewriteFilter所設(shè)定的規(guī)則 也無效。

造成這種現(xiàn)象的原因是因為在默認(rèn)情況下,靜態(tài)的資源均由Apache進行處理,而jsp或者由web.xml所映射的servlet均交給 resin進行處理。如果web項目沒有使用UrlRewriteFilter則一切OK,但是使用了UrlRewriteFilter之后,由 servlet所映射的地址并不是/*即所有資源了,而是類似/app/*這樣的設(shè)置。也就是說,用戶所請求的資源首先由Apache判斷一下,然后再由 選擇的交給Resin,最后才執(zhí)行UrlRewriteFilter的規(guī)則。


知道了原因,解決的方法也就出來了,只要告訴Apache將所有的資源都交由Resin來處理就可以了,可以使用Resin的servlet-mapping方法進行配置,配置如下



htaccess 實現(xiàn)URL重寫
1、安裝 mod_rewrite 模塊 因為 Apache 服務(wù)器默認(rèn)是沒有打開 mod_rewrite 模塊的,所以我們必須手動來啟動。打開 Apache 的配置文件 httpd.conf 文件,找到下面一行: #LoadModule rewrite_module modules/mod_rewrite.so 前面的 # 號是 Apache 配置文件的注釋符,也就是 Apache 服務(wù)器沒有加載該模塊。將前面的 # 號去掉,保存后重啟 Apache 服務(wù)器,這是我們就實現(xiàn)了加載 mod_rewrite 這個模塊了。(提示:任何一次對 Apache 的配置文件 httpd.conf 文件都是要重新啟動 Apache 才能生效的)

2、新建 .htaccess 文件 在 windows 系統(tǒng)默認(rèn)的情況下是不能新建沒有文件名的文件的,這里建議大家使用 vim 這個編輯器來新建。方法是打開 vim 編輯器隨便輸入一段文字,然后保存為 .htaccess 即可。很多朋友因為習(xí)慣了 windows 系統(tǒng),所以新建這個文件很頭疼。還有就是文件名一定不要錯,我今天寫的時候把文件保存成了.htacess,看到?jīng)]有,少了一個c,怎么調(diào)試都不對,還好最后發(fā)現(xiàn)了這個低級錯誤。

3、配置 .htaccess 文件 .htaccess 文件務(wù)必放在你項目的根目錄下,不要放在其他文件夾下。配置 .htaccess 文件的格式如下: RewriteEngine On #這里是你的規(guī)則 解釋:RewriteEngine On :啟動URL重寫引擎 先看如下一個配置好了的 .htaccess 文件實例: RewriteEngine On RewriteRule ^index.html$ /index.php [L] RewriteRule ^shop/(.+)/$ shop/shop.php?PRoviderId=$1 [L]

分析:上面 .htaccess 文件就寫了二條規(guī)則。當(dāng)在瀏覽器中輸入 index.html 時,后臺調(diào)用的是 index.php 文件。符號“^”是以后面的字符開頭,相信熟悉正則表達式的朋友不會陌生吧,符號“$”是以前面的字符結(jié)尾。符號L表示停止處理接下來的規(guī)則。最后一條當(dāng)我們在瀏覽器中輸入 shop/2322 時,后臺調(diào)用 shop.php文件并傳遞參數(shù)provider=2322 。 配置規(guī)則,大家照著那一條去寫吧,記得每行后面加個 L 符號。

深圳網(wǎng)站制作htaccess 實現(xiàn)URL重寫

瀘州網(wǎng)站建設(shè)

四川網(wǎng)站優(yōu)化排名公司

再寫一個:

http://www.cdhuace.com/category.php?id=12 想重寫成 http://www.cdogo.net/category/12

RewriteRule ^category/([0-9]+)$ category.php?id=$1

如果有多頁的文章 如:www.bm7419.comcategory.php?id=12&page=3 重寫成 http://www.bm7419.com/category/12/3

RewriteRule ^category/([0-9]+)/([0-9]+)$ category.php?id=$1&page=$2

如果你想升級你的站點,又要保證老的鏈接都可用,你也可以通過mod_rewrite模塊來實現(xiàn)。你僅僅需要寫一個規(guī)則之處這個網(wǎng)頁被永久的移動了。例子如下:

RewriteRule ^oldpage.html$ newpage.html [R=301]

本文題目:深圳網(wǎng)站制作htaccess 實現(xiàn)URL重寫
本文網(wǎng)址:http://www.bm7419.com/news39/19439.html

網(wǎng)站建設(shè)、網(wǎng)絡(luò)推廣公司-創(chuàng)新互聯(lián),是專注品牌與效果的網(wǎng)站制作,網(wǎng)絡(luò)營銷seo公司;服務(wù)項目有網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)