2012-06-14 141 views
1

我有一個單頁網站,它根據通過URL傳遞的變量來改變內容。.htaccess單頁網址的url重寫

例如,我的網址顯示爲

www.mysite.com/index.php?section=home 
www.mysite.com/index.php?section=about-us 

等等等等,這取決於哪一個環節,你的主導航點擊。

我想要這些網址爲www.mysite.com/homewww.mysite.com/about-us

我的mod重寫功能已啓用,因爲在我將其作爲單頁網站之前,它的功能正常。

我已經試過這...

RewriteEngine on 
RewriteBase/
RewriteRule ^home/?$ index.php?section=$1 [NC,L] 

我想盡我的建議對谷歌和StackOverflow上發現,沒有什麼工作。

任何幫助,將不勝感激!

+0

谷歌「清潔URL」,「漂亮的網址」,「URL重寫」等,有很多很多的答案,那裏已經是。 –

+0

這裏的答案與多頁網站看起來相關,不適用於單頁網站。我會採取你的建議,並嘗試再次尋找。 –

+0

我實際上使用'RewriteRule'來達到和你一樣的目的,一個單一的頁面網站。我會發佈一個例子作爲答案,因爲我保證它的工作。 –

回答

1

我有一個.htaccess完全相同的目的,它的工作精美。我的代碼如下。

RewriteEngine On 
RewriteRule ^([^/\.]+)/?$ index.php?id=$1 [L] 

當然,如果index.php不是您的主要PHP文件,請用什麼替代。另外,如果您的示例代碼是您使用的代碼,請將?id替換爲?section

什麼[^/\.]+意思是說I need you to find text that contains anything but a period (.) or a forward slash (/), and there has to be at least one character in it.

舉個例子,去我使用它的網站上,Northside Aikido

如果您有任何問題,請隨時詢問。

編輯

注意,此代碼將無法打開http://www.example.com/index.php?section=homehttp://www.example.com/home自動的,它只會意味着後者鏈接的作品像前。如果您希望它自動替換它,則需要比一行更多的代碼。

+0

我把你在這裏的東西放在我的htaccess文件中,但我仍然得到不潔淨的網址。 –

+0

閱讀我的編輯,它可能會指出你有什麼問題。 –

+0

嘗試進入'[page]/home'而不是'[page] /index.php? section = home'。 –

1

幾乎

RewriteEngine on 
RewriteBase/
RewriteRule ^([a-zA-Z0-9-]+)/?$ index.php?section=$1 [NC,L] 
+0

不幸的是,這並不適合我。 –

+0

我相信有一個錯字。看看這是否更好。 –

+0

也無法讓它工作。一些奇怪的事情正在發生... –

1

這是即時通訊使用的是什麼:

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteRule ^([A-Za-z0-9-]+)/?$  index.php?section=$1 [NC,L] 
</IfModule> 
+0

這幫了我。謝謝! –