2011-01-25 116 views
0

可能是一个简单的事情,但我不知道该怎么做:我有这个在我的htaccess的文件至今需要帮助mod_rewrite的条件

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 然后他们去defaultgg ...如图所示。

否则,如果有人输入一个像这样的网址http://dddd.com/ca/on/peel/veggies/tomatoes 然后他们去一个页面X列出在皮尔市的所有西红柿。

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

否则 - 如果有人输入像这样的网址http://dddd.com/ca/on/peel/veggies/prodid 然后他们进入一个页面Y列表在皮尔素食发现Prodid prodid的细节。

如何设置规则?

感谢

PS:否则 - 如果有人进入,像这样http://dddd.com/ca/on/peel/veggies 然后一个url他们去到一个页面defaultgg如上设置为“蔬菜”类,所以一般则采用关键字“任何“在第4,第5或第6个url文件夹的url中将导致在脚本Y中执行搜索,但完全关闭它将直接导向到defaultgg。 我想如果使用单词“任何”可能会触发搜索,如果它发生在URL中的任何地方作为一个文件夹。

回答

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

我的工作难熬基于传统智者的网站,我试图添加URL间友好的支持。现在,网站中的所有内容都通过index.php与各种参数进行匹配,因此尴尬的文件= searchresult。也许代替使用defaultgg.php我可以将它放到index.php中,所以defaultgg.php可能会变成index.php?file = defaultgg等。