2012-09-13 74 views
0

說我有喜歡http://abc.com/index.php?cat=37&subsubcat=0&subcat=199&page=product_detail&product_id=1661如何使用.htaccess獲取自定義(且友好)的網址?

我可以使用.htaccess重定向URL /重寫這個像http://abc.com/simplerName網址?

我在SO上發現了很多需要友好URL的帖子,但我想更進一步,也就是說我想指定子文件夾的名稱應該是什麼(在上例中,它是「simplerName」)。現在我有10個我想要自定義的網址,並且我非常喜歡爲每個網址指定10個規則。

但我不知道如何使用.htaccess來實現此目的。這甚至有可能嗎?

+0

是的,你一定可以使用'.htaccess'重定向/重寫URL。您可以先閱讀[mod_rewrite](http://httpd.apache.org/docs/current/mod/mod_rewrite.html)來實現此目的。 – hjpotter92

+0

我完全知道.htaccess可以用來重寫URL。我想知道的是指定目標子文件夾,而不是隻是使其友好的網址。我在這裏經歷了其他的一些問題,有些很接近,但並不重複我所要求的。 – Ray

+0

你想要什麼'simplerName'是什麼? '/子文件夾/ 37/0/199/product_detail/1661 /'? –

回答

0

由於您使用不存在「subfiolders」指示哪些規則應該符合什麼,這將是非常直接:

你想是這樣的:

RewriteEngine On 

RewriteRule ^/?category/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/ /index.php?cat=$1&subsubcat=$2&subcat=$3&page=$4&product_id=$5 [L] 

RewriteRule ^/?something-else/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/ /index.php?something=$1&subsub=$2&sub=$3&page=$4&something_id=$5 [L] 

等。

然後,您需要將所有服務的網址更改爲友好的網址,而不是查詢字符串。

+0

似乎很簡單... [L]做什麼?我現在要測試一下......謝謝,Jon。 – Ray

+0

@Ray'[L]'標誌告訴重寫引擎停止當前迭代的重寫過程*。雖然規則會循環,但如果應用了'RewriteRule',它將停止重寫當前迭代。 –

+0

感謝您的信息,Jon ...非常有幫助! – Ray