将所有请求重定向到域(某些文件夹除外)

将所有请求重定向到域(某些文件夹除外)

我尝试将所有请求从域重定向到子域,但/mypath以下所有内容除外。示例:

example.com -> sub.example.com
example.com/somestuff -> sub.example.com

example.com/my-path不应被重定向。

以下是负责该操作的配置部分:

RewriteCond %{HTTP_HOST} ^example.com$
RewriteCond %{REQUEST_URI} !^/my-path/
RewriteRule ^/?(.*)$ "http\:\/\/sub\.example\.com" [R=301,L]

问题是我无法实现目标,而且我不知道这里出了什么问题。我试图找到一个例子来实现相同的目标,但没有成功。

答案1

/my-path/仅当输入URI 时才匹配末尾的斜杠,而不是/my-path

使用

RewriteCond %{HTTP_HOST} ^example.com$
RewriteCond %{REQUEST_URI} !^/my-path
RewriteRule ^/?(.*)$ "http\:\/\/sub\.example\.com" [R=301,L]

这样它就能计算/my-path//my-path

相关内容