2011-10-28 91 views
-3

請幫忙動態URL中使用的htaccess在PHP轉換爲靜態URL在PHP重寫。URL通過htaccess的

實施例1:

www.example.com/say.php?name=ksrtc-palakkad-kerala&id=c669239(動態URL)

www.example.com/say/ksrtc-palakkad-kerala-c669239.html(靜態URL)


實施例2:

www.example.com/index.php?name=ksrtc-palakkad-kerala&id=c669239(動態URL)

www.example.com/say/ksrtc-palakkad-kerala-c669239.html(靜態URL)

問候, PRABHAT

回答

3

你應該創建一個看起來像這樣一個.htaccess:

RewriteEngine on 

# if a directory or a file exists, use it directly 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

# otherwise forward it to index.php 
RewriteRule . index.php [L] 

現在的完整路徑將被重定向到的index.php - 這將是你的單一入口點,您可以通過$_SERVER['REQUEST_URI']如果我記得好訪問它。

現在你的工作是編寫一套規則來知道這個url匹配的所有可能的路由(正則表達式),然後解析url並相應地設置GET變量(從你的第二個例子 - name,id) 。如果網址不符合任何已知的URL - 其轉發給您的錯誤頁面。

,你也應該做反向路由,如果有人打開與普通的網址,以獲取變量,如「的index.php?名稱= ksrtc-伯拉卡德,喀拉拉邦& ID = c669239」你應該用301永久重定向重定向到「 SEO」 URL‘/say/ksrtc-palakkad-kerala-c669239.html’

如果這不回答你的問題,請詳細說明。

+0

感謝您的回覆我知道我必須使用htaccess,但我不知道如何在htaccess中寫入rewriterule,以便它能接受url「/say/ksrtc-palakkad-kerala-c669239.html – user1017808