2011-10-12 71 views
0

我对自己也算是一个令人困惑的标题遗憾;但认为没有其他选择。而且我需要知道如何在多级文件的三级系统级别的主级上.htaccess影响以下级别的.htacces文件的行为;以及来自其他级别的.htaccess文件如何影响非主域中的行为。共享主机.htacess主域范围内的.htaccess

我接待来自一个共享的托管帐户多个网站。

假设的cPanel文件中的三个系统结构。

从我的public_html有主域,这个目录包含一个.htaccess文件。然后,在三个文件结构中,我有其他域,我将它称为二级域,并且每个都有自己的.htaccess如果一个二级域没有.htacess,主域的.htaccess会影响该域中的.htaccess

域的url的行为向下的文件三结构。

我想确保所有www.domain.com都会转到domain.com(至少是从我当前的服务提供商处获得;因为我与另一个服务提供商在一起,但情况并非如此。其他)

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

初级水平的.htaccess达到我的目标,通过下面的代码的主域:

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

而且我有二级域名尝试访问的尝试和错误hieve相同的代码

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

内是主域LEVE内的.htaccess,而文件中的三个系统正的第二个层次,我无法得到期望的结果

为了更好ilustration我添加三种文件系统:

cpanel_account 

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

我如何可以重定向www.secondarydomain.com调用从的.htaccess到secondarydomain是否主域级别或文件中的三个结构的二级域级别?

谢谢

[更新]

好,好,我张贴的问题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] 

(REPEAT i是否添加此代码或不)

的域,其中所有域请求(即www.anyofmydomainshostedhere.com)被重定向到非www anyofmydomainshostedhere。com

:?

回答

1

如果我正确理解目标,则需要将secondarydomain.com重写放在secondarydomain.com文件夹中。原因是域直接指向该文件夹,并且从未在public_html文件夹中看到.htaccess文件。

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

+0

你真令人厌恶,我的完美,层叠的术语适合鞋子。但举例来说,我问主机服务提供商有关www重定向到非www,然后修改后的.htaccess出现在主域(查看更新后的帖子,b/c注释区域不允许良好的文本格式)所以,在我的情况下,级联是绝对的发生,除非你告诉我,否则从 – IberoMedia

+0

以上的更新我很困惑。您在更新中发布的代码是否是最后一个代码块和整个.htaccess文件?这可能是您的托管公司在服务器设置或httpd.conf中更改了某些内容。我不完全确定此时发生了什么,但我不相信.htaccess规则应递归应用。 –

+0

是的,发布在更新中的代码除了最后一个块被放置在我的主机帐户的第一级(即public_html/.htaccess),并且在我向托管公司询问我的重定向不起作用之后出现。正如我从apache/.htacess规范中读到的,我明白服务器管理员可以为三个文件.htaccess行为设置限制;或者你如此合理地称为“级联”http://httpd.apache.org/docs/current/howto/htaccess.html – IberoMedia