2012-02-22 168 views
0

我正在嘗試將我的動態網址變爲靜態網址。 這是我現在有一個典型的URL: http://www.somedomain.com/design/index.php?p=about.htaccess動態變爲靜態網址

我想它是:http://www.somedomain.com/about

到目前爲止,我已經得到它看起來像這樣:http://www.somedomain.com/design/about.html

這是我正在使用的改寫軟件:RewriteRule ^([a-z]+).html$ index.php?p=$1 [L]

我該如何修改它,使其看起來像這樣:http://www.somedomain.com/about

感謝您的任何/所有幫助! 非常感謝!

回答

0

使用重寫規則給'靜態'URI是從來沒有一個好主意。

一些其他的想法,你可以使用:

  • 充分利用「關於」頁面目錄(文件夾)與文件名爲index.php或者它index.html。這樣,URL顯示http://example.com/about/,並且您希望的信息仍可以根據需要顯示。
  • 使用POST方法而不是GET方法。這將顯示爲http://example.com/about.php注意:沒有?或其後的參數
  • 利用這兩種方法在頁面轉換時給出'無縫'URI。
+0

我目前的index.php從其他目錄和數據庫動態加載信息。所以,爲每個頁面使用不同的文件夾可能不適合我的情況。 – Rick 2012-02-22 20:41:53

+0

PenguinCoder,你可能不認爲這是一個好主意,但它是非常普遍的做法,隨着「SEO優化」URI的發展趨勢越來越明顯。這不是一個主流的觀點,所以最好能夠用「在我看來」這樣的條件來表達這樣的清單:-) – TerryE 2012-02-22 23:46:25

0

瑞克,你走在正確的軌道上。您需要閱讀Apache重寫文檔。

RewriteEngine On 
RewriteBase /

您的規則。然後通用版本:爲了您的docroot/.htaccess啓動它

Rewrite Rule ^(\w+)$  index.php?p=$1 [L] 

這將改寫這是單詞串到index.php任何請求。您需要知道,如果匹配發生,重寫引擎會重新掃描.htaccess文件,因此您需要確保不會創建循環。在這種情況下,替換字符串中有一個「.」,並且該模式沒有,所以這不會發生,但是對於更復雜的情況,您可能需要用一個或多個RewriteCond語句「守護」規則。再次閱讀Apache文檔。