Apache-2.2

Apache 伺服器上的目錄重定向

  • April 23, 2012

我下載了一個名為 sphpblog 的簡單 PHP 部落格模板並將其放在我的伺服器上。該部落格可通過 classlibrary.org 訪問。此域重定向到伺服器上的文件夾 /other/william/classlibrary。我可以訪問部落格的首頁,它顯示得很好。但是,當我嘗試點擊連結時,連結會轉到 classlibrary.org/other/william/classlibrary/linkname.extension,這會導致 404 錯誤。我檢查了部落格的首選項,沒有選項可以將其直接指向網站的根目錄。所以,我想有任何連結到 classlibrary.org/other/william/classlibrary/filename.extension 重定向到 classlibrary.extension。

而不是為伺服器上的每個文件創建單獨的 html 文件,這需要一段時間,我可以通過 .htaccess 文件以某種方式做到這一點嗎?我的伺服器執行 PHP 5.2 版,classlibrary.org 重定向到的完整路徑是 /home/content/r/t/e/rteder10/other/william/classlibrary。我無權訪問管理員控制面板或訪問或伺服器本身。它是 Godaddy Linux 主機。任何幫助將不勝感激。

假設伺服器配置為允許覆蓋,您可以使用 mod_rewrite 創建各種映射。恐怕你的具體情況有些令人費解。我不清楚您將這些列表保存在哪裡,以及它們的建構方式是否有任何連貫的規則。如果有系統,您可以像這樣使用 mod_rewrite:

RewriteEngine on
RewriteRule ^/other/william/classlibrary/([a-z]*).ext  /other/william/classlibrary/$1library.ext

但是,僅當連結名以某種方式與類名匹配時才有效。您可以在http://httpd.apache.org/docs/current/mod/mod_rewrite.html找到有關 mod_rewrite 的更多資訊

如果關係過於復雜或任意而無法使用正則表達式和反向引用,則可以使用 rewritemap,它允許您創建任意重寫的表。http://httpd.apache.org/docs/2.3/rewrite/rewritemap.html

如果這一切看起來太複雜並且您沒有太多重定向,您可以使用更簡單的重定向命令在 .htaccess 文件中一一完成:

Redirect  /other/william/classlibrary/filename.extension http://classlibrary.org/other/william/classlibrary/classlibrary.extension

引用自:https://serverfault.com/questions/366122