繁体   English   中英

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

[英].htaccess: redirect all pages except one not working

我试图通过通配符为所有页面设置重定向,除了一个特定情况。 我尝试过以下方法:

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]

根据THE_REQUEST变量尝试此规则:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM