2013-07-23 22 views
1

我在我的網站工作重寫URL其中URL是這樣的:有三個動態參數

http://mywebsite.com/series.php?sid=1&part=1&name=Introduction%20to%20HTML 

我試圖在我的htaccess的規則是:

RewriteRule ^([^/]+)/([^/]+)/([^\.]+)\.html$ /series.php?sid=$1&part=$2&name=$3 

爲了改寫網址形式爲:

http://mywebsite.com/1/1/Introduction to html.html 

不幸的是,它不適合我。

請人幫我整理出了問題。如果有人讓我明白它是如何工作的,我也會喜歡它。 我是.htaccess的新手。 在上面的規則,我可以看到像三個不同的部分:

1st part: ^([^/]+) 
2nd Part: ([^/]+) 
3rd part: ([^\.]+)\.html$ 

這三個部分是由反斜槓分離。它們是如何工作的以及如何利用相同的重寫URL表單來獲得超過3個假設4或5個參數以及少於3個參數的情況?

謝謝!

回答

0

你的規則是正確的,只是添加L標誌結束規則,並確保的.htaccess和mod_rewrite的是通過Apache的配置功能。

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 

RewriteRule ^([^/]+)/([^/]+)/([^\.]+)\.html$ /series.php?sid=$1&part=$2&name=$3 [L,NC,QSA] 
+0

我害怕。它不適合我。你能告訴我我們添加了什麼目的[L,NC,QSA]嗎? 我相信QSA具有一定的相關查詢字符串。 L怎麼樣? –

+1

L是爲最後一個規則,NS是任何情況下都比較QSA是(現有的)查詢字符串追加。你只需要L標誌,但正如我寫的,確保.htaccess和mod_rewrite通過Apache配置啓用。如果它們已啓用,則在您的問題中發佈完整的.htaccess。 – anubhava

+0

嘿,非常感謝你。 我加了[L ...]我的規則,它工作得很完美。 我的壞,我試圖 HTTP://localhost/series/1/1/Introduction%20to%20HTML.html 而不是 的http://本地主機/ 1/1 /引言%20to%20HTML html的 現在它運行完美。謝謝!。 –