多个重写规则到不同的页面

时间:2016-04-01 11:28:17

标签: .htaccess redirect rewrite

我正在尝试创建多个重写规则,以便将几个页面重定向到某些页面,其余页面将重定向到起始页面。但是,我的所有页面都会被重定向到起始页面。

这是我正在使用的代码:

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 个答案:

答案 0 :(得分: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]

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