使用+更改URL的RewriteRule也影响或不允许第二个规则更改网址 -

时间:2014-09-08 19:52:27

标签: .htaccess mod-rewrite url-rewriting query-string

好吧所以我有我的.htaccess文件,我正在重写搜索查询。

我对查询本身进行了正确的重写,但实际创建虚拟文件的重写的后半部分或任何你想要调用的内容是什么......有两个规则既可以独立工作但又不能一起工作......意思是如果我把一个放在另一个之前,第一个工作,第二个不工作,如果我交换它们,新的第一个工作,第二个不工作。

RewriteRule ^/?([^/]*)/([^/]*)-([^/]*)-([^/]*)$ /searchresults.php?search=1&year_search_type=single&isused=all&year=$1&make=$2\+$3\+$4&model=all&price=all [L,NC]
RewriteRule ^/?([^/]*)/([^/]*)-([^/]*)-([^/]*)$ /searchresults.php?search=1&year_search_type=single&isused=all&year=$1&make=$2\-$3\+$4&model=all&price=all [L,NC]

第一条规则应该是过滤掉年份为什么的任何字符串,而make是" wordDASHwordSPACEword"而第二个做同样的事情,除了寻找" wordSPACEwordSpaceword"

但只有第一个有效。两者都完美无缺,除非写下第二篇。

这个伏都教是伏都教。

如果你想要查询重写信息,它也是:(我在上面的规则之前没有正常工作......但是在下面或上面移动它没有区别)

RewriteCond %{THE_REQUEST}  \?.*[&]isused=(\S+).*&year=([0-9]+).*&make=([^\%20]+)\+([^&\s]+)\+([^&\s]+).*&model=(all).*&price=(all).*$ [NC]
RewriteCond %3 !=all
RewriteCond %2 !=all
RewriteRule . /%2/%3-%4-%5? [R=301,L]

RewriteCond %{THE_REQUEST}  \?.*[&]isused=(\S+).*&year=([0-9]+).*&make=([^\%20]+)\-([^&\s]+)\+([^&\s]+).*&model=(all).*&price=(all).*$ [NC]
RewriteCond %3 !=all
RewriteCond %2 !=all
RewriteRule . /%2/%3-%4-%5? [R=301,L]

0 个答案:

没有答案