首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何防止.htaccess重定向规则从级联到保存在“public_html”根子目录中的站点?

如何防止.htaccess重定向规则从级联到保存在“public_html”根子目录中的站点?
EN

Stack Overflow用户
提问于 2017-05-27 04:58:50
回答 1查看 285关注 0票数 1

基本上,我在'public_html‘目录的根目录(一个Apache服务器)中有一些子目录,我在其中保存了我的主站点( http://www.jamesandersonjr.com )。主网站文件直接位于“public_html”根目录中,而其他站点(有各自独立的域)则位于根目录下的子文件夹/子目录中。

我遇到的问题是,我的.htaccess文件中的一些规则(在‘public_html’的根目录中)正在层层下降,以影响其他站点,在前面提到的子目录中(因此,它们自己单独的网站)。以下是规则:

代码语言:javascript
复制
RedirectMatch 301 "^\/facebook\/?$" "/facebook.php"
RedirectMatch 301 "^\/twitter\/?$" "/twitter.php"
RedirectMatch 301 "^\/youtube\/?$" "/youtube.php"
RedirectMatch 301 "^\/bug_?report\/?$" "/bug_report.php"

RedirectMatch 301 "^\/bugreport\.(php|html?)(\?)?$" "/bug_report.php"

这些规则在我的主网站的.htaccess文件中:http://www.jamesandersonjr.com,但在我不知道的情况下,它们也会影响另一个位于根目录的子目录中的网站。

首先,如何防止这种“级联”的发生,或者如何重写规则,只包括与主网站相关的路径(在上面的代码中):http://www.jamesandersonjr.com,而不是子文件夹/子目录?

注意:在完全重写代码的情况下,我需要能够保留url参数/变量(尤指p)。(尤指)(尤指)在最后一个规则中,在上面的代码中)。例如:

http://www.jamesandersonjr.com/bugreport.php?page_domain=http://www.example.com

自动变成:

http://www.jamesandersonjr.com/bug_report.php?page_domain=http://www.example.com

提前感谢您的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-27 06:06:06

您可以尝试用以下方法包装您的规则:

代码语言:javascript
复制
<If "%{HTTP_HOST} == 'www.jamesandersonjr.com'">
    ...
</If>

更新

若要包含子域和根域而不包含任何子域(只有jamesandersonjr.com),请执行以下操作:

代码语言:javascript
复制
<If "%{HTTP_HOST} =~ /(?:^|\.)jamesandersonjr\.com$/">
    ...
</If>

若要包含子域但不包含根域,请执行以下操作:

代码语言:javascript
复制
<If "%{HTTP_HOST} =~ /\.jamesandersonjr\.com$/">
    ...
</If>

这是用于任何级别的子域。如果您只希望允许一个级别的子域,则需要对其进行更新。

作为参考,文件在这里

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44213116

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档