0

我正在尝试完成这样的RewriteCond但我遇到了正则表达式的问题

当当前地址为 domain2.tld/test/ 而不是domain2.com/test/_appz/ 时才重定向到 domain1.tld

域可能无关紧要:

仅当当前地址由目录 /test/ 组成时才重定向到 domain1.tld ,但在 /test/ _appz / 和更深的位置不包含

我想达到的条件:

domain2.tld/test/ >>> 重定向

domain2.tld/test/_appz/ >>> 留

otherdomain.tld >>> 留下

编辑:

我正在为自己的目的编写自己的 CMS,有 2 个域指向同一个 public_html,

一种是官方的,一种仅用于通过 CMS 访问。

cms.domain2.tld/test/ >>> redirect to domain1.com

cms.domain2.tld/test/_appz/ >>> no redirect

domain1.tld>>> no redirect (as it will be loop)

domain1.tldcms.domain2.tld指向.htaccess所在 的同一个目录

提前感谢4您的帮助!

4

1 回答 1

0

您可以使用 mod_alias 或 mod_rewrite 进行重定向。请注意,使用 mod_alias,您不想使用该Redirect指令,该指令将虚拟链接两个路径节点,这不是您想要的。

mod_alias

domain2.tld的文档根目录下的 htaccess 文件中,添加:

RedirectMatch ^/test/?$ http://domain1.tld/

如果您想要永久重定向:

RedirectMatch 301 ^/test/?$ http://domain1.tld/

mod_rewrite

如果您有可能干扰 mod_alias 的重写规则,那么您可能只想坚持使用 mod_rewrite。此外,如果domain1.tlddomain2.tld共享同一个文档根目录,您将无法使用 mod_alias。你想要这样的东西:

RewriteEngine On
RewriteCond %{HTTP_HOST} domain2.tld$ [NC]
RewriteRule ^/?test/?$ http://domain1.tld/ [L,R]

如果您想要永久重定向,请将标志更改为[L,R=301].

于 2013-01-16T23:11:59.640 回答