2016-04-01 82 views
1

我想创建多个重写规则,以便几个页面将被重定向到某些页面,其余的将被重定向到起始页面。但是,我的所有网页都不断重定向到开始页面。多个重写规则到不同的页面

这是我使用的代码:

RewriteCond %{HTTP_HOST} ^site\.com/category\.php?s=1$ [NC] 
RewriteRule (.*) http://site.co.uk/category/? [R=301,L] 


RewriteCond %{HTTP_HOST} ^site\.com$ [NC,OR] 
RewriteCond %{HTTP_HOST} ^www\.site\.com$ [NC] 
RewriteRule (.*) http://site.co.uk/? [R=301,L] 

编辑:

这是一个完整的.htaccess:

Order deny,allow 
DirectoryIndex default.php index.php 
SetEnv DEFAULT_PHP_VERSION 5 


Options +FollowSymLinks 
RewriteEngine On 
RewriteBase/

RewriteCond %{THE_REQUEST} /flavours\.php?\s=1 [NC] 
RewriteRule^http://site.co.uk/flavours/? [R=301,L] 

RewriteCond %{HTTP_HOST} ^(www\.)?site\.com$ [NC] 
RewriteRule^http://site.co.uk/? [R=301,L] 

这是我试图访问该链接:WWW .site.com/flavours.php?s = 1

回答

1

HTTP_HOST不能匹配REQUES_URI

您可以使用:

# specific redirects 
Options +FollowSymLinks 
RewriteEngine On 
RewriteBase/

RewriteCond %{THE_REQUEST} /flavours\.php\?s=1 [NC] 
RewriteRule^http://site.co.uk/flavours/? [R=301,L] 

RewriteCond %{HTTP_HOST} ^(www\.)?flaverco\.com$ [NC] 
RewriteRule^http://site.co.uk/? [R=301,L] 

确保测试此之前,清除浏览器缓存。

+0

不幸的是,它仍然一直把我送到开始页面。 – Ellinor

+0

什么是你用来测试的确切URL?也可以显示完整的.htaccess问题 – anubhava