這是我的網址:
http://localhost/blog/post/?meta=How-We-Build-Your-Website
我需要它是這樣的:
http://localhost/blog/How-We-Build-Your-Website
我該怎么做.htaccess?
uj5u.com熱心網友回復:
我很確定這樣做的唯一方法是在 PHP 中重定向它。
您可以通過編輯 post.php 檔案并將其放在檔案頂部來執行此操作:
<?php if (isset($_GET['meta'])) { header("Location: ../".$_GET['meta']); exit; } ?>
這會重定向到頁面而不加載任何其他頁面資料。如果沒有“?meta=...”,它不會重定向,而是加載頁面的其余部分。
uj5u.com熱心網友回復:
要在內部將友好 URL 的請求重寫/blog/How-We-Build-Your-Website為/blog/post/index.php?meta=How-We-Build-Your-Website(實際處理請求的底層檔案),您可以.htaccess使用 mod_rewrite執行以下操作:
RewriteEngine On
RewriteRule ^blog/([^w-] )$ blog/post/index.php?meta=$1 [QSA,L]
子模式([^w-] )捕獲 URL 路徑的一部分,/blog/并將其存盤在$1反向參考中,稍后將其用作替換字串(第二個引數)中的metaURL 引數值。正則運算式字符類匹配范圍, , , (下劃線)和(連字符)中的字符,這涵蓋了您的示例。[^w-]a-zA-Z0-9_-
該QSA標志還將附加初始請求中的任何查詢字串。如果您不希望在初始請求中出現查詢字串,那么您應該洗掉此標志。
澄清一下,您仍然需要將 HTML 源中的 URL 實際更改為規范/友好的 URL。IE。/blog/How-We-Build-Your-Website.
請注意,如果您有其他指令,.htaccess那么順序可能很重要。
參考:
- https://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriterule
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/322348.html
