.htaccess:重定向除一个不工作的所有页面

时间:2016-05-02 21:58:54

标签: .htaccess redirect

我正在尝试使用通配符为所有页面设置重定向,但一个特定情况除外。我已经尝试了以下内容:

RewriteCond %{HTTP_HOST} ^(www\.)?old\.com$
RewriteCond %{REQUEST_URI} !^/menu
RewriteRule ^(.*)$ "http\:\/\/www\.new\.com\/$1" [R=301,L]

我期待的是

old.com -> new.com
old.com/abc - > new.com/abc
old.com/menu -> old.com/menu

除了以下所有重定向都正常工作:

old.com/menu -> old.com/http://www.new.com

我无法弄明白为什么。

编辑:.htaccess的其余部分

RewriteOptions inherit
# Use PHP5.4 as default
AddHandler application/x-httpd-php54 .php

# For security reasons, Option followsymlinks cannot be overridden.
#Options +FollowSymLinks
Options +SymLinksIfOwnerMatch
RewriteCond %{HTTP_HOST} ^(www.)?old.com$
RewriteCond %{REQUEST_URI} !^/web/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /web/$1
RewriteCond %{HTTP_HOST} ^(www.)?old.com$
RewriteRule ^(/)?$ web/ [L]

1 个答案:

答案 0 :(得分:0)

根据fly变量

尝试此规则
THE_REQUEST