【问题标题】:shared hosting .htaccess within primary domain .htaccess主域 .htaccess 中的共享主机 .htaccess
【发布时间】:2011-12-05 20:46:53
【问题描述】:

我很抱歉这个标题令人困惑;却想不出办法。而且我需要知道 .htaccess 在多级文件三个系统级别的主要级别如何影响以下级别的 .htaccess 文件的行为;以及其他级别的 .htaccess 文件如何影响非主域中的行为。

我正在通过一个共享托管帐户托管多个网站。

假设cpanel文件三系统结构。

从 public_html 我有主域,这个目录包含一个 .htaccess 文件。然后,在三个文件结构中,我有其他域,我将其称为二级域,每个域都有自己的 .htaccess

如果辅助域没有 .htacess,则来自主域的 .htaccess 会影响文件三个结构中的域 url 的行为。

我想确保所有 www.domain.com 都转到 domain.com(至少来自我当前的服务提供商;因为,我和另一个服务提供商在一起,但情况并非如此。任何级别的 .htaccess 都不会影响其他人)

我想将 www.domain.com 重定向到 domain.com

一级.htaccess通过以下代码实现了我对一级域的目标:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.primarydomain.com [NC]
RewriteRule ^(.*)$ http://primarydomain.com/$1 [L,R=301]

我对辅助域尝试使用代码实现相同的尝试和错误

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.secondarydomain.com [NC]
RewriteRule ^(.*)$ http://secondarydomain.com/$1 [L,R=301]

在主域级别内的 .htaccess 和文件三系统的第二级中,我无法获得所需的结果

为了更好的说明,我添加了一个三文件系统:

cpanel_account

   public_html
      .htaccess
      index.php
      index.html
      secondarydomain.com
         .htacess
         index.php
         index.html

如何将 www.secondarydomain.com 调用从 .htaccess 重定向到辅助域级别的文件三结构是主域级别还是辅助域级别?

谢谢,

[更新]

嗯,很好,我发布了 b/c 问题,因为我做了更多的研究发现:

当我查看其中一个共享托管帐户的 .htaccess 时,我发现以下针对第一级 public_html 修改的 .htacess 代码

# -FrontPage-
IndexIgnore .htaccess */.??* *~ *# */HEADER* */README* */_vti*
<Limit GET POST>
order deny,allow
deny from all
allow from all
</Limit>
<Limit PUT DELETE>
order deny,allow
deny from all
</Limit>
AuthName PrimaryDomain.com
AuthUserFile /home/USER/public_html/_vti_pvt/service.pwd
AuthGroupFile /home/USER/public_html/_vti_pvt/service.grp

<files *.js.gz>
  AddType "text/javascript" .gz
  AddEncoding gzip .gz
</files>
<files *.css.gz>
  AddType "text/css" .gz
  AddEncoding gzip .gz
</files>
RewriteEngine on
#Check to see if browser can accept gzip files.
ReWriteCond %{HTTP:accept-encoding} gzip
RewriteCond %{HTTP_USER_AGENT} !Safari
#make sure there's no trailing .gz on the url
ReWriteCond %{REQUEST_FILENAME} !^.+\.gz$
#check to see if a .gz version of the file exists.
RewriteCond %{REQUEST_FILENAME}.gz -f
#All conditions met so add .gz to URL filename (invisibly)
RewriteRule ^(.+) $1.gz [QSA,L] 

以及我是否添加此代码到二级域级别(即 public_html/secondarydomain.com/.htacess)

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.secondarydomain.com [NC]
RewriteRule ^(.*)$ http://secondarydomain.com/$1 [L,R=301]

(重复我是否添加此代码)

域,所有域请求(即 www.anyofmydomainshostedhere.com)都被重定向到非 www anyofmydomainshostedhere.com

:?

【问题讨论】:

    标签: .htaccess


    【解决方案1】:

    如果我对目标的理解正确,您需要将 secondarydomain.com 重写放在 secondarydomain.com 文件夹中。这样做的原因是域被立即定向到该文件夹​​,并且永远不会在 public_html 文件夹中看到 .htaccess 文件。

    我对你提到的级联 .htaccess 事情不太乐观 - 那将是一个相当有趣的服务器配置,我不知道它是如何工作的,因为 .htaccess 应该是目录级别的。

    【讨论】:

    • 你完全理解了我,级联术语就像鞋子一样合适。但是举个例子,我向托管服务提供商询问了将www重定向到非www的问题,然后修改后的.htaccess出现在主域上(查看更新的帖子,b / c评论区不允许良好的文本格式) 所以,在我的情况下,级联绝对会发生,除非你从上面的更新中告诉我其他情况
    • 我很困惑。您在更新中发布的代码(除了最后一个块)是您的整个 .htaccess 文件吗?可能是您的托管公司更改了服务器设置或 httpd.conf 中的某些内容。我不确定此时发生了什么,但我不认为应该递归应用 .htaccess 规则。
    • 是的,更新中发布的代码,除了最后一个块位于我的托管帐户的第一级(即 public_html/.htaccess)并且在我向托管公司询问我的重定向后出现不工作。当我阅读 apache/.htacess 规范时,我了解到服务器管理员可以为三个文件 .htaccess 行为设置限制;或者你所谓的“级联”httpd.apache.org/docs/current/howto/htaccess.html
    • 我不知道从哪里开始,因为您的托管公司可以做很多事情。如果重定向有效,我不会太担心。如果不是,请在此处再次回复,我将与您一起解决问题。
    猜你喜欢
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 2013-02-12
    • 1970-01-01
    • 2011-08-13
    • 1970-01-01
    • 1970-01-01
    • 2013-12-31
    相关资源
    最近更新 更多