2013-11-07 分類: 網站制作
成都網站制作htaccess 實現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來做偽靜態,單獨運行在Resin等JavaEE Web容器中的時候一切都OK,但是一旦與Apache一起組合的時候總是會出現404或403錯誤,當然UrlRewriteFilter所設定的規則 也無效。
造成這種現象的原因是因為在默認情況下,靜態的資源均由Apache進行處理,而jsp或者由web.xml所映射的servlet均交給 resin進行處理。如果web項目沒有使用UrlRewriteFilter則一切OK,但是使用了UrlRewriteFilter之后,由 servlet所映射的地址并不是/*即所有資源了,而是類似/app/*這樣的設置。也就是說,用戶所請求的資源首先由Apache判斷一下,然后再由 選擇的交給Resin,最后才執行UrlRewriteFilter的規則。
知道了原因,解決的方法也就出來了,只要告訴Apache將所有的資源都交由Resin來處理就可以了,可以使用Resin的servlet-mapping方法進行配置,配置如下
htaccess 實現URL重寫
1、安裝 mod_rewrite 模塊 因為 Apache 服務器默認是沒有打開 mod_rewrite 模塊的,所以我們必須手動來啟動。打開 Apache 的配置文件 httpd.conf 文件,找到下面一行: #LoadModule rewrite_module modules/mod_rewrite.so 前面的 # 號是 Apache 配置文件的注釋符,也就是 Apache 服務器沒有加載該模塊。將前面的 # 號去掉,保存后重啟 Apache 服務器,這是我們就實現了加載 mod_rewrite 這個模塊了。(提示:任何一次對 Apache 的配置文件 httpd.conf 文件都是要重新啟動 Apache 才能生效的)
2、新建 .htaccess 文件 在 windows 系統默認的情況下是不能新建沒有文件名的文件的,這里建議大家使用 vim 這個編輯器來新建。方法是打開 vim 編輯器隨便輸入一段文字,然后保存為 .htaccess 即可。很多朋友因為習慣了 windows 系統,所以新建這個文件很頭疼。還有就是文件名一定不要錯,我今天寫的時候把文件保存成了.htacess,看到沒有,少了一個c,怎么調試都不對,還好最后發現了這個低級錯誤。
3、配置 .htaccess 文件 .htaccess 文件務必放在你項目的根目錄下,不要放在其他文件夾下。配置 .htaccess 文件的格式如下: RewriteEngine On #這里是你的規則 解釋:RewriteEngine On :啟動URL重寫引擎 先看如下一個配置好了的 .htaccess 文件實例: RewriteEngine On RewriteRule ^index.html$ /index.php [L] RewriteRule ^shop/(.+)/$ shop/shop.php?PRoviderId=$1 [L]
分析:上面 .htaccess 文件就寫了二條規則。當在瀏覽器中輸入 index.html 時,后臺調用的是 index.php 文件。符號“^”是以后面的字符開頭,相信熟悉正則表達式的朋友不會陌生吧,符號“$”是以前面的字符結尾。符號L表示停止處理接下來的規則。最后一條當我們在瀏覽器中輸入 shop/2322 時,后臺調用 shop.php文件并傳遞參數provider=2322 。 配置規則,大家照著那一條去寫吧,記得每行后面加個 L 符號。
再寫一個:
http://www.cdhuace.com/category.php?id=12 想重寫成 http://www.cdogo.net/category/12
RewriteRule ^category/([0-9]+)$ category.php?id=$1
如果有多頁的文章 如:m.newbst.comcategory.php?id=12&page=3 重寫成 http://m.newbst.com/category/12/3
RewriteRule ^category/([0-9]+)/([0-9]+)$ category.php?id=$1&page=$2
如果你想升級你的站點,又要保證老的鏈接都可用,你也可以通過mod_rewrite模塊來實現。你僅僅需要寫一個規則之處這個網頁被永久的移動了。例子如下:
RewriteRule ^oldpage.html$ newpage.html [R=301]
當前名稱:深圳網站制作htaccess 實現URL重寫
URL分享:http://m.newbst.com/news/19439.html
網站建設、網絡推廣公司-創新互聯,是專注品牌與效果的網站制作,網絡營銷seo公司;服務項目有網站制作等
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯
猜你還喜歡下面的內容