2008-12-23 30 views
0

我在我的.htaccess,看起來像這樣有條件的.htaccess重寫規則參數

RewriteRule ^something/(\d+)/start /index.php?ix=$1 
RewriteRule ^embed/something/(\d+)/start /index.php?ix=$1&fEmbed=1 

這兩者之間的唯一區別是領先「嵌入/」,所以我想這將是相當多的RewriteRules有利於將這些組合成單個RewriteRule。我嘗試停留在

RewriteRule ^(embed/)?something/(\d+)/start /index.php?ix=$2&fEmbed=$1 

這臺「& fEmbed =嵌入/」,這真的是不是我想要的。我想評估$ 1的內容,並輸出不同的內容(即「1」)。

將前兩個RewriteRules組合成單個RewriteRule時,如何解決這個問題的任何想法?

回答

1

我認爲這應該是兩條規則,但他們不應該做同樣的事情。以下是未經測試,但希望其意圖是明確的,如果它不工作「外的即用」:

RewriteRule ^(embed/)?something/(\d+)/start$ /index.php?ix=$2 
RewriteRule ^embed/(.*) $1&fEmbed=1 

我假設「/啓動」總是在的結束URL。如果不是,那就更難了。

編輯:閱讀維加德的評論,我想,也許它可以通過交換規則處理:

RewriteRule ^embed/(.*) $1&fEmbed=1 
RewriteRule ^something/(\d+)/start /index.php?ix=$1 

但儘管如此,它依賴於現實世界的應用這是否會工作或沒有。

+0

規則並不總是在開始時結束,並且具有比所示更多的參數。然而,這個想法很好,我會試驗它。 – 2008-12-23 10:57:02

0

與PEZ」的想法工作,這是我想出了:

RewriteRule ^something/(\d+)/start(&fEmbed=1)? /index.php?ixQuiz=$1&fStart=1$2 
RewriteRule ^embed/(.*)       $1&fEmbed=1 

不是很,很漂亮,但它的作品。我現在可以有多個以「something /」開頭的規則,並且所有規則都可以使用「embed /」作爲前綴。