使用 mod_rewrite 的 .htaccess 重新導向規則

使用 mod_rewrite 的 .htaccess 重新導向規則

我有一個 PHP 腳本,根據查詢從資料庫動態產生內容。使用者可以從文字方塊中搜尋使用者名稱「mark」。內容由 PHP 在 www.domain.com/?username=mark 提供,但我希望使用者將服務 URL 視為 www.domain.com/username/mark.html。同樣,用戶可以透過設定檔(整數)進行搜尋。內容在 www.domain.com/?profile=2 處產生。我希望使用者將服務 URL 視為 www.domain.com/profile/2.html。這可行嗎?

這是我的 .htaccess 檔案:

 RewriteEngine On
 RewriteRule ^username/([^/]*)\.html$ /?username=$1 [L]
 RewriteRule ^realname/([^/]*)\.html$ /?realname=$1 [L]
 RewriteRule ^profile/([^/]*)\.html$ /?profile=$1 [L]

Mod_rewrite 已啟用,但該檔案似乎不起作用。

答案1

您的程式碼應該可以工作,也許它根本沒有執行。您可以嘗試輸入錯誤並查看 Apache 是否給出 500 回應。

除此之外,您可以嘗試使用以下 htaccess。新增了index.php,以確保呼叫正確的檔案。

RewriteEngine On
RewriteRule ^username/([^/]*)\.html$ /index.php?username=$1 [L]
RewriteRule ^realname/([^/]*)\.html$ /index.php?realname=$1 [L]
RewriteRule ^profile/([^/]*)\.html$ /index.php?profile=$1 [L]

相關內容