2013-05-20 47 views
1

我需要幫助創建一些.htaccess規則。目前,我有這樣的:.htaccess重定向如果搜索字有一些字符串在它之前

RewriteEngine On 

Redirect 404 /favicon.ico 

#Check if request was made for RSS feed 
RewriteCond %{REQUEST_URI} ^(.+)/events($|/) [NC,OR] 
RewriteCond %{REQUEST_URI} ^(.+)/tickers($|/) [NC] 
RewriteRule ^(.*)$ rss.php/?$1 [L] 

我需要什麼:

  • 如果URL是這樣的:domain.com/events/,不重定向
  • 如果URL是這樣的:domain.com/ [任何] /事件/,做內部重定向
  • events可也tickers

回答

1

而不是查詢REQUEST_URI,這應該在RewriteRule本身處理。它實際上是一個相當簡單的匹配模式,並且建議使用[^/]+捕獲所有字符,直到第一個/$1。如果該組不存在,重寫將不會發生。要在第一個/之後允許eventstickers,請使用(events|tickers)

RewriteEngine On 
RewriteRule ^([^/]+)/(events|tickers) rss.php/?$1 [L,NC] 

這是沒有必要的,因爲你是不是在重寫URL使用它們來匹配$或斜線。如果需要匹配,那麼當URL爲/something/events/somethingelse時不重寫,只需使用/?$作爲可選尾部斜線和字符串的結尾。

RewriteRule ^([^/]+)/(events|tickers)/?$ rss.php/?$1 [L,NC] 
+0

而在稍加修改(我忘了提,我需要還捕捉到了'事件| tickers'),您的解決方案工作。謝謝。 –

0

,你可以嘗試添加條件t結束重寫/ events/to/events /並查看它是否會覆蓋之前的匹配。

相關問題