2010-06-20 114 views
0

使用htaccess的如何將這種類型的網址:如何使用htaccess重寫網址?

http://www.mysite.com/page.php?slug=hello-world 

到這種類型:

http://www.mysite.com/page/hello-world 

而且不只是這一個網址,但在第一格式到第二格式的所有URL。

回答

3

如果第二個是,你希望人們能看到的網址,使用:

RewriteRule ^page/(.*)$ /page.php?slug=$1 

如果它是周圍的其他方法:

RewriteRule ^page\.php?slug=(.*)$ /page/$1 

編輯:另外,要確保你有任何RewriteRules前.htaccess以下內容:

RewriteEngine On 
+0

這不是爲我工作,我把你的發佈代碼的第一塊。我放在我的www文件夾的根目錄下的htaccess文件。然後,我嘗試通過輸入http://www.mysite.com/page/hello-world來訪問該頁面,但它不起作用。 – Jim 2010-06-21 00:16:38

+0

是的我在聲明中添加了重寫引擎,仍然返回404頁面沒有找到錯誤:( – Jim 2010-06-21 00:30:43

+0

我剛剛試過這個,它工作正常。是否有任何重定向爲你工作?mod_rewrite啓用,.htaccess不會被忽略? – 2010-06-21 01:07:00

1

您可能希望參考herethis

這是我的想法給您的解決方案:

RewriteEngine on 
RewriteCond %{QUERY_STRING} ^slug=[^/]+$ [NC] 
RewriteRule ^page\.php$ http://www.mysite.com/page/$1? [R=301,L] 
+0

這個代碼當我輸入mysite.com/product.php?slug=hello-world時,它會將我重定向到mysite.com/product,當然這是找不到的。如果我輸入mysite.com/page/hello-world,結果也會如此在404. – Jim 2010-06-21 00:59:48

+0

你可以指定你的問題更多嗎?'turn'這個詞不清楚,你的意思是前端重定向/服務器重定向?並且最好指出你想改變的url中的參數。 – Capitaine 2010-06-21 01:09:34