需要帮助mod_rewrite条件

时间:2011-01-25 21:00:56

标签: regex mod-rewrite

可能是一件简单的事情,但我不知道该怎么做:到目前为止我的htaccess文件中有这个

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule ^([^/]*)/?([^/]*)/?([^/]*)/?$  X.php?country=$1&province=$2&region=$3&xxx=ZZZ [skip=1]
RewriteRule ^([^/]*)/?([^/]*)/?([^/]*)/?([^/]*)/?([^/]*)/?([^/]*)/?$  defaultgg.php?country=$1&province=$2&region=$3&category=$4&type=$5&prodid=$6 [L]

它可以很好地重定向。但是现在我需要添加一个部分,如果设置了最后3个参数中的任何一个,则表示要重定向到不同的页面。我尝试了L并跳过了选项,但它们似乎不能跳过后面的规则,所以我的最终规则(如上所示)总是运行。

这个想法是有人输入这样的网址http://dddd.com/ca/on/peel 然后他们去了默认...如图所示。

如果有人输入了这样的网址http://dddd.com/ca/on/peel/veggies/tomatoes 然后他们去了第十页,列出了皮尔市的所有西红柿。

否则 - 如果有人输入了这样的网址http://dddd.com/ca/on/peel/veggies/any 然后他们去了Y页列出了皮尔市的所有蔬菜。

否则 - 如果有人输入了这样的网址http://dddd.com/ca/on/peel/veggies/prodid 然后他们去了一个页面Y列表详细说明了在皮尔的蔬菜中发现的prodid。

如何设置规则?

由于

PS:否则 - 如果有人输入这样的网址http://dddd.com/ca/on/peel/veggies 然后他们转到上面的页面defaultgg,类别设置为“veggies”,所以通常在第4,第5或第6个url文件夹的url中使用关键字“any”将导致在脚本Y中进行搜索,但完全离开一个将直接指向defaultgg。 我认为使用“any”这个词可以触发搜索,如果它出现在url中的任何位置作为文件夹。

1 个答案:

答案 0 :(得分:0)

我正在取得一些进展:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !/any[/]*
#go to defaultgg to narrrow search
RewriteRule ^([^/]*)/?([^/]*)/?([^/]*)/?([^/]*)/?([^/]*)/?$  defaultgg.php?aa=$1&bb=$2&cc=$3&dd=$4&ee=$5&xxx=aaa

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# do a search
RewriteRule ^([^/]*)/?([^/]*)/?([^/]*)/?([^/]*)/?([^/]*)/?([^/]*)/?$  index.php?file=searchresult&aa=$1&bb=$2&cc=$3&dd=$4&ee=$5&ff=$6&xxx=zzz 

我正在使用传统的基于smarty的网站,并尝试添加freindly url支持。现在,网站中的所有内容都通过index.php进行了各种参数调整,因此笨拙的文件=搜索结果。也许不是使用defaultgg.php我可以将它滚动到index.php,所以defaultgg.php可能会变成index.php?file = defaultgg等。