重定向和偽靜態在網站中的應用
什麼是偽靜態和重定向
偽靜態
是相對真靜態來講的。偽靜態只是改變了URL的表現形式,實際上還是動態頁面。偽靜態有了真靜態一樣的SEO。
重定向
是通過各種方法將各種網路請求重新定個方式轉到其他位置。
HTTP標準協議中的3xx (主要是302,303)
Apache環境
#重定向模組linux平臺的配置安裝
LoadModule rewrite_module modules/mod_rewrite.so
重定向既可以在apche的主配置檔案中設定,也可以在.htaccess檔案中設定。
區別:修改.htaccess不需要重啟apache。
注意:使用.htaccess檔案,需要給其設定許可權
#在apache主配置中
AllowOverride None
修改為:
AllowOverride All
重定向第一個例子
RewriteEngine On
RewriteRule ^(.*)\.htm$ $1.html
#訪問.htm檔案,會被替換成.html
重定向的原理和基本方法
1..htaccess
的工作原理
.htaccess檔案(或者『分散式配置檔案』)提供了針對每個目錄改變配置的方法,即在一個特定的目錄中,放置一個包含指令的檔案,其中的指令用於此目錄及其所有子目錄。
2.Apache重定向原理
基於Apache重定向基礎知識
1.mod_rewrite簡介
Apache的URL操作模組
包含:RewriteBase、RewriteRule、RewriteCond、RewriteMap
2.rewrite日誌功能
在做很多除錯或者排查錯誤的時候,最佳工具一定是它的日誌。
在這裡,如果你的重定向發生了錯誤(比如死迴圈),你就可以通過日誌來快速定位問題。
apache2.2版本的 RewriteLog RewriteLogLevel (0關閉 9dbug)
apache2.4以上版本的 LogLevel
LogLevel操作示範
#要求:只能在apache主配置檔案中,不能在.htaccess檔案裡配置
LogLevel alert rewrite:trace8
#日誌最後是記錄到apache_error.log檔案裡
#1-8,生產模式不要大於trace2(或者不記錄日誌)
3.RewritRule語法說明
RewriteRule 模式匹配 替換的URL [flags]
模式匹配,支援Perl格式的正則表示式和rewrite的變數。
替換的URL,支援模式匹配的結果和rewrite變數。
多個flag用逗號隔開 [R=302,C]
4.RewriteRule R flag說明
強制外部重定向,後面可以加301或302跳轉,不加預設的302
RewriteRule ^/?(.*)\.html /src/$1.php [R=302]
5.RewriteRule C flag說明
連結下一規則
RewriteRule ^/?(.*)\.html /src/$1.htm [C]
RewriteRule ^/?(.*)\.html /src/$1.php
如果前一條規則不匹配,就不進入下一個規則驗證了。
6.RewriteRule L flag說明
結尾規則,一旦匹配就立即停止重寫操作,並不在應用其他重寫規則
RewriteEngine On
RewriteRule ^(.*) first.php?url=$1 [L]
RewriteRule ^(.*) second.php?url=$1
7.RewriteRule NE flag說明
不對URL中的特殊字元進行hexcode轉碼
RewriteEngine On
RewriteRule ^(.*).htm /index.html#$1 [R,NE]
如果不寫 NE, #
符號在位址列會被轉義為%23
RewriteRule ^(.*).htm /index.html#$1 [R]
8.RewriteRule NC flag說明
不區分大小寫
RewriteRule ^test/(.*)\.htl /tmp/$1.htm [NC]
9.RewriteRule G flag說明
請求的網頁已經失效(Gone)
RewriteRule ^oldulr.*$ - [G]
Apache伺服器會返回410
10.RewriteRule QSA flag說明
用於在URI中擷取查詢字串
RewriteRule ^per/(.*)$ /per.php?person_id=$1 [QSA,R]
11.RewriteBase 語法說明
設定了目錄級重寫的基準URL
RewriteEngine On
RewriteBase /test
RewriteRule ^(.*)\.htm$ $1.html [R]
這樣訪問localhost/test.htm,就會跳轉到 /test/test.html
12.RewriteCond 語法說明
RewriteCond指令定義了一個規則的條,即在一個RewriteRule指令之前有一個或多個RewriteCond指令。
RewriteEngine on
RewriteCond $1 "test"
RewriteRule ^(.*)\.htm $1.html
滿足條件localhost/test.htm ,才能批到到 test.html
相關推薦
重定向和偽靜態在網站中的應用
什麼是偽靜態和重定向 偽靜態是相對真靜態來講的。偽靜態只是改變了URL的表現形式,實際上還是動態頁面。偽靜態有了真靜態一樣的SEO。 重定向是通過各種方法將各種網路請求重新定個方式轉到其他位置。 HTTP標準協議中的3xx (主要是302,303)
偽靜態網站如何做301重定向?
301重定向百度搜索一下會出來很多內容,但是搜尋出來的內容往往不是很全面,大多講的都是靜態301重定向的方法。那如果是靜態網站或者說是偽靜態的網站如何做301的重定向設定呢?整理之後,下面給大家一一做一個介紹(下面的方法都是傳遞百度權重的哦): 1、在.htaccess檔
javaweb中重定向和請求轉發(response.sendRedirect()和request.getRequestDispatcher(rul).forward(request,response)))的區別
客戶端 不起作用 這也 方法 cnblogs rect() 獲取url rec alt 先來兩張圖,方便理解: 可以看出,重定向時,是服務器向遊覽器重新發送了一個response命令,讓遊覽器再次向url2發送請求,以獲取url2的資源 而請求轉發時,類似於是服務器自己
Servlet中的request對象、重定向和轉發的差別(6)
current https 命令 相對 eba 進入 file before redirect 1.這裏所說的request對象指的是HttpServletRequest對象,它代表client的請求,當client通過HTTP協議訪問server時。HTTP請求頭
HTTP中的重定向和請求轉發的區別
response 傳輸 觀察 web應用 ali jpg 處理 size 什麽 一、調用方式 我們知道,在servlet中調用轉發、重定向的語句如下:request.getRequestDispatcher("new.jsp").forward(request, resp
springMVC中的重定向和請求轉發的使用
請求轉發 controller 方法提供了一個 String 型別返回值之後, 它需要在返回值裡使用:forward: 使用說明: @RequestMapping("/forward") public String forward(){ // 通過forward關鍵字實現轉發
Java基礎之Java Web中 什麼是重定向和轉發?如何選擇使用重定向還是轉發?
1.重定向和轉發的區別是什麼? 重定向是兩次請求,轉發是一次請求,因此轉發的速度要快於重定向。 重定向之後位址列上的地址會發生變化,變化成第二次請求的地址,轉發之後位址列上的地址不會變化,還是第一次請求的地址。 重點:重定向和請求轉發之後的程式碼都會執行,直到方法結束或者遇到
Web開發中的請求重定向和內部轉發的區別
一、呼叫方式 我們知道,在servlet中呼叫轉發、重定向的語句如下: request.getRequestDispatcher("new.jsp").forward(request, response); //轉發到new.jsp response.sen
jsp/servlet中重定向和轉發的區別
轉自:http://cantellow.javaeye.com/blog/372941 關於兩者的區別我就不用多說了,一搜一大堆,大概就是: 重定向是客戶端跳轉,轉發是伺服器端跳轉 在servlet中呼叫轉發、重定向的語句如下: request.getRequestDispatcher("new.jsp"
servlet請求中post提交表單重定向到跨域網站問題
statuscode為302 是作為HTTP1.0的標準,以前叫做Moved Temporarily ,現在叫Found. 現在使用只是為了相容性的處理,response.sendRedirect()的預設Location重定向用的是302. 但是HTTP 1.1 有303 和307作為詳細的補充,其實是對
servlet中的重定向和請求轉發
重定向 重定向即重新定位方向,它的引數是跳轉的位置 response.sendRedirect("xxx.html"); 請求轉發 引數也是跳轉的位置 request.getRequestDispatcher("xxx.html").forward(request,re
SpringMVC中controller間跳轉、重定向和傳參
1. 需求背景 需求:spring MVC框架controller間跳轉,需重定向。有幾種情況:不帶引數跳轉,帶引數拼接url形式跳轉,帶引數不拼接引數跳轉,頁面也能顯示。 2. 解決辦法 (1)我在後臺一個controller跳轉到另一個controller,為什麼有這種需求呢,是這樣的。
web中解決亂碼問題&&重定向和請求轉發區別
String ss = "珍珍"; String s8 = URLEncoder.encode(ss, "utf-8"); String so = URLDecoder.
Http中的重定向和轉發
在專案開發中,經常會用到轉發和重定向,它們雖然都是轉向,但是二者卻有著本質的區別。而且,該開始接觸的時候,也不清楚到底什麼時候用轉發,什麼時候用重定向。那到底它們有什麼區別呢?又該怎麼用呢?下面就一起看看吧。 表面區別 轉發 轉發是用RequestDi
【Servlet】深入淺出Java重定向和請求轉發
列表 url地址 ssi 什麽 stack led 要去 處理 代碼 import java.text.*; import java.util.*; import java.io.*; import javax.servlet.http.*; i
重定向和別名
router pat new dex 組件 outer path out 定向 new router({ routes:[ { path: ‘/‘, conponent: home, name: ‘Home‘, a
請求重定向和請求轉發的關系
cti 愛好 ima 重定向 3-9 req 應該 用戶名 action 測試response.sendRedirect方法 先將index.jsp中的action頁面修改成為response.jsp 然後再response.jsp頁面中執行response.sendR
Nginx 之四: Nginx服務器的rewrite、全局變量、重定向和防盜鏈相關功能
war int 服務器驗證 %u 寫日誌 防盜鏈 循環 版本 算法 一:Nginx 後端服務器組的配置: 1、upstream: 用於設置後端服務器組的主要指令,upstream類似於之前的server塊或http塊,用法如下: upstreame Myserve
第五章 linux重定向和管道
控制 windows 空白 設備 example 替換 刪除fstab num 研究 重定向和管道 標準輸入和輸出: 程序:指令+數據 讀入數據:Input 輸出數據:Output 打開的文件都有一個fd: file descriptor (文件描述符) Linux給程序提
真靜態和偽靜態的區別
靜態 流量 數據庫 發布 體驗 ecms 調用 word url 首先肯定的是純靜態和偽靜態都是SEO的產物,但純靜態和偽靜態還是有很大區別的。 純靜態是生成真實的HTML頁面保存到服務器端,用戶訪問時直接訪問這 個HTML頁面即可,從而大大的減輕了服務器壓力(如ded