2011-12-08 29 views
0

我想重寫我的網站中的網頁的網址。它基本上非常簡單。我原來的URL看起來像這樣.htaccess url重寫不能以最後的斜線工作?

http://www.mypage.com/website/page.php?slug=my-page

我希望它看起來像這樣:http://wwww.mypage.com/website/my-page/

這工作。如果你刪除了最後的斜線,那麼工作是什麼。這是我的htaccess:

RewriteEngine on 
RewriteRule ^(.*)/$ page.php?slug=$1 [L] 

看來,如果我刪除斜線$ _GET [「塞」]只變成page.php文件,但以斜線變說「我的頁面」。

是否有可能使鏈接既沒有也沒有尾隨斜線?

編輯:它的問題,如果我有一個childfolder中的.htaccess和PHP文件?所以我的真實網址是這樣的:http://www.mypage.com/website/page.php?slug=something

我現在編輯了這個帖子,它的確如此。

+0

htaccess的文件的位置有差別。查看htaccess的工作原理。 –

回答

1

嘗試添加此:

RewriteRule ^website/([a-z0-9]+)/?$ website/page.php?slug=$1  [NC,L,QSA] 

根據需要修改正則表達式,具體取決於您想要接受的URL類型。

查找htaccess的如何運作方面的事情像查詢字符串等:

http://httpd.apache.org/docs/1.3/howto/htaccess.html

+1

@jaypCheck你的代碼 - 你有一個開放的paren和一個關閉方括號atm! – Pete171

+0

我使用yout代碼並得到一個內部服務器錯誤:/ – Paparappa

+0

糟糕,明顯輸入太快!現在修復。再試一次。 –

1
RewriteEngine on 
RewriteRule ^(.*)/?$ page.php?slug=$1 [L] 

問號使尾部斜線可選。我也建議只有一種URL。就像重定向URL沒有後面的salsh一樣。

1

我只能前RewriteRule ^(.*)/$ page.php?slug=$1 [L]

RewriteRule ^(.*)$ page.php?slug=$1 [L] 

基本上想用這條線的,在你的原代碼,你聲明的結尾的斜線,所以它需要一個尾隨斜線