【发布时间】:2017-05-27 04:58:50
【问题描述】:
基本上,我在 'public_html' 目录(Apache 服务器)的根目录中有一些子目录,我将主要网站(http://www.jamesandersonjr.com)保存在其中。主要网站文件直接位于“public_html”根目录中,而其他网站(具有自己的独立域)位于根目录下的子文件夹/子目录中。
我遇到的问题是我的 .htaccess 文件(在“public_html”的根目录中)中的一些规则正在级联,以影响上述子目录中的其他站点(因此,它们自己的单独网站)。以下是规则:
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 参数/变量(特别是“GET”)(特别是在最后一条规则中,在上面的代码中)。例如:
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
提前感谢您的帮助。
【问题讨论】:
标签: apache .htaccess redirect mod-rewrite