Php

mod_rewrite 和 PHP 擴展的問題 - 幫助製作正確的 .htaccess 文件

  • October 30, 2012

我正在為我的網站尋找一組簡單的規則和重定向。我已經嘗試了很多組合,以至於我開始感到困惑。

我不確定如何設置。通常,如果沒有 mod-rewrite,我會使用相對路徑連結到文件:

<a href="link.php">Link</a>

如果它在同一個目錄中。

現在我想用這個:

<a href="link">Link</a>

所以如果你去這個頁面:

localhost/mysite/link

它會將您帶到正確的位置,即:

localhost/mysite/link.php

而且,許多目錄級別的深度我希望它也能正常工作:

localhost/mysite/group/link2

會去:

localhost/mysite/group/link2.php

和:

localhost/mysite/group/section/link3

會去:

localhost/mysite/group/section/link3.php

但是在所有這些情況下,如果有人要輸入以下內容:

localhost/mysite/group/section/link3.php

在 URL 欄中,它會顯示:

localhost/mysite/group/section/link3

謝謝

編輯

我認為我遇到的部分問題是我的站點根目錄中有這些目錄:

product1, product2,product3

而且我還在一個名為的目錄中有這些文件products

product1.php, product2.php,product3.php

在我將這些文件名更改為其他名稱之前,該.htaccess文件無法正常工作,這與目錄名稱不同。這有意義嗎?這是預期的行為嗎?

編輯 2

我相信有人會來這篇文章尋求與我寫這個問題時類似的幫助。在這里和 stackoverflow.com 上有很多關於 mod_rewrite 的好答案。我建議通讀這些並在測試實例上嘗試這些條件和規則以掌握它們的竅門。

我還意識到,使用頻繁的瀏覽器記憶體清除和啟動 RewriteLog 對於弄清楚這些東西是必不可少的。例如:

RewriteLog “rewrite.log” RewriteLogLevel 7

玩得開心

您可以使用 .htaccess 來做到這一點。實現這一點的正確程式碼如下:

重寫引擎開啟

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME}.php -f

重寫規則 ^(.*) $ $ 1.php

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