apache/tomcat的JSP?URL重?的SEO优化/二?域名的要?
Apache是用了很長時間,但也只是用了很長時間,要說精通還談不上。所以這四五天存在著補課的味道在?面:既然公司不能提供好的系統管理員,也 只能是自已兼任了。經過對Apache和tomcat結合後的進行SEO優化的處理,四五天後,對這幾件工具的基本邏輯框架有了統一的認識。
對URL重寫的了解需要是針對這樣的需求:偏向于HTML的SEO搜索引擎優化,以及提供不定量的二級域名便于模塊管理和推廣。搜索引擎不 能識雖動態頁面在技術上是不可能的;我認?最大的可能在于對于靜態的hardlink,如果不存在搜索引擎會得到一個404標識;而對于動態頁面,反應就 不一定了。這樣就不便于搜索引擎對索引維護和分目。
對Apache mod_rewrite的深入了解後,發現在它的文檔和介紹文章中常常缺少幾個關鍵性的導引;而過快地涉及到具體的細節。要理解mod_rewrite的 工作,首先是要理解,mod_rewite是針對目錄進行工作的。換言之,每一個目錄的RewriteRule是各自獨立的,每個目錄的重寫既是最高層的 容器同時也是最低層的容器,因此,RewriteRule定義的地方是在各個目錄所在的位置,或者是所在目錄的.htaccess中。
其次,mod_rewrite是缺乏邏輯功能的平面型規則集合,因此每一個目錄設置中都是每一條規則地進行重複性轉換,[L]僅僅是表明一次匹配結 束,它還需要重新匹配,直接沒有任何條目與之匹配後才會輸出請求,這樣,如果規則稍多不但性能會直線下降,而且還很容易陷入混亂,所以 mod_rewrite要慎用,使用mod_rewrite來匹配二級域名要小心。對此,mod_rewrite設計者是期望使用正則表達式匹配,或允許 用戶調用perlShell作?複雜匹配邏輯上的應用。但這樣就令開發變得複雜起來了。
由于 mod_rewrite是基于目錄級的,所以它的優先級低于虛擬主機設置;而VirtualHost主機的優先級也低于 VirtualDocumentRoot的泛虛擬主機設置。由于VirtualHost的ServerName基于IP頭的匹配不能使用正則表達式,因 此,使用VirtualDocumentRoot設置多級域名存在著非常大的限制,應用稍微多元化就會面臨著難以克服的沖突。因此,單純使用虛擬主機或者 是URL 重寫都是不太有效率的,這時侯主要路徑應該是使用html導引,這樣既可以滿足SEO喜歡hardlink的要求,也不會影響到使用者的?覽;最重要的 是,可以把主要解決方案集中到一個應用程序的範籌,簡化了項目技術,也就降低了項目的成本。
使用mod_rewrite和二級域名的站點基本上使用php大概是基于這樣的原因:會話的一致性維護。當mod_rewrite應用到jsp站點 時存在著很大的複雜性。由于mod_rewrite是針對目錄進行的,它必然幹擾到目錄的運作;而jsp的上下文由于根據基礎目錄作?應用程序的判斷的; 這樣,在目錄清晰的情況下,jsp在不同的域名和虛擬主機下面都能正常識別到所維護的會話,但一旦目錄不齊全,象使用二級域名,無論這個目錄解釋是來源于 URL重寫還是虛擬主機設設置,?覽器都會把它看作是兩個會話請求,從而造成混亂。因此,在jsp站點使用二級域名,除了使用硬的html連接導引外,別 無它法。當然,使用Redirect方式可以解決問題的,表面上,但這樣的話就失去了SEO的意義;而URL重寫本來就是?了SEO而進行的;那?又何必 搞重寫呢?
截取RewriteCond條件中的字符串作?改寫變量:
RewriteCond %{HTTP_HOST} ^([A-Za-z0-9\-]+)\.bbs\.home\.javanet\.edu$ [NC]
RewriteRule ^$ http://home.javanet.edu/_apphome/bbs/%1.html [L]
注意其中的()和%X,前者是正則表達式截取的內容,後者是按順序取變量;
截取RewriteRuld中URL的字符串作?重寫變量:
RewriteRule ^([A-Za-z\-]+)\.html /apphome/$1.jsp [L]
同樣地,注意它的()和$,後者是與ReWriteCond不同的地方。
另外要注意的是[L],盡管是鏈中最後一條,但與防火牆的過濾轉發規則鏈不同,這個L是本次循環結束標志,而不是整個改寫流程結束標志。重寫的邏輯是:
while(有沒有任一條匹配) loop;
而防火牆規則鏈是if-else-else......;
特別是象本人一樣開發過防火牆的,對這種規則的區別要特別注意,否則很容易陷入死循環。
http://zwwwxy.blogchina.com/1149090.html
http://blog.csdn.net/zwwwxy/archive/2005/04/09/340996.aspx
http://javaxml.blog-city.com/apachetomcatjspurlseo.htm
0 Comments:
Post a Comment
<< Home