.htaccess文件使用2种不同的重写规则

.htaccess文件使用2种不同的重写规则,.htaccess,mod-rewrite,redirect,.htaccess,Mod Rewrite,Redirect,我有一个.htaccess文件,其中有一个重写规则,如下所示,可以正常工作: RewriteRule ^solicitorsin([^/]+)/all/([0-9]+)$ /search/searchresults.php?county=$1&page=$2 [L] 我想做的是,如果页面变量为2或更高,则继续使用它,但如果为1,则我希望301重定向到单独的url(同一站点),比如http://www.domain.com/solicitorsinCOUNTY/ 问题是,如果我尝试使用3

我有一个.htaccess文件,其中有一个重写规则,如下所示,可以正常工作:

RewriteRule ^solicitorsin([^/]+)/all/([0-9]+)$ /search/searchresults.php?county=$1&page=$2 [L]
我想做的是,如果页面变量为2或更高,则继续使用它,但如果为1,则我希望301重定向到单独的url(同一站点),比如
http://www.domain.com/solicitorsinCOUNTY/

问题是,如果我尝试使用301重定向或重写规则执行此操作,它仍然会执行上面的重写规则,因此我最终使用
http://www.domain.com/solicitorsinCOUNTY/?county=COUNTY&page=1


我以前对.htaccess做得不多,所以我甚至不确定这是否可行,有人能帮忙吗?非常感谢。

如果您使用的是重写规则,请将
page=1的规则置于其他规则之上,并确保您具有
[L]
标志

或者,您可以使用
RewriteCond
防止规则在特定URL上运行,如下所示:

RewriteCond %{REQUEST_URI} !^solicitorsin([^/]+)/all/1$
RewriteRule ^solicitorsin([^/]+)/all/([0-9]+)$ /search/searchresults.php?county=$1&page=$2 [L]

非常感谢:)如果我有这样一句话:RewriteRule^lavorsin([^/]+)/all/1$[r=301,L]那么这意味着在每个旧的/all/1链接上都是301重定向设置吗?或者我需要为每一个设置手动301重定向吗?@user:不知道你的意思。它将重定向与模式匹配的任何内容。