.htaccess 不起作用 - 添加域名

.htaccess 不起作用 - 添加域名

原有域名文件在 下/home/account/public_html,附加域名在/home/account/add-on-domain

两个站点都有一个.htaccess文件,除了域名之外,其他都相同,都在主目录中。

主域名:

Options +SymLinksIfOwnerMatch -FollowSymLinks -Indexes

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

添加域名:

Options +SymLinksIfOwnerMatch -FollowSymLinks -Indexes
RewriteEngine on
RewriteCond %{HTTP_HOST} ^domain2.co.uk [NC]
RewriteRule ^(.*)$ http://www.domain2.co.uk/$1 [L,R=301]

中还有更多内容.htaccess,但附加组件根本无法读取。

Allowoverrides All在主域上添加会导致其崩溃,在添加域上不执行任何操作。

答案1

Options +SymLinksIfOwnerMatch -FollowSymLinks -Indexes

尝试将 AddOn 域设置FollowSymLinks为 而不是SymLinksIfOwnerMatch。例如:

Options +FollowSymLinks -Indexes

更新:

Allowoverrides All在主域上添加会导致其崩溃,在添加域上不执行任何操作。

这似乎意味着.htaccess插件域未启用覆盖,或者插件域指向的文件系统路径未启用覆盖。不幸的是,这需要访问服务器配置才能解决 - 您似乎无权访问。

您需要AllowOverride All向插件域的容器添加<VirtualHost>内容,以覆盖插件域指向的目录。例如:

<Directory /home/account/add-on-domain>
    # Permit "All" .htaccess overrides for this directory tree
    AllowOverride All
</Directory>

(当您在 cPanel 中创建附加域时,它应该已经为您执行此操作。)

子域/附加域是否放错了位置?

不,不一定。这取决于你具体在做什么。如果附加域要与主域完全分开,那么最好这样做。

例如它应该在 public_html 下吗?

这应该没什么关系。但是,如果您将附加域指向主域之外的子目录,那么.htaccess主域的文档根目录中的内容也会影响附加域。为了将它们分开,您需要将主域的内容移动到另一个子目录中,并将请求从文档根目录重写到此子目录(这些只是在您无权访问服务器配置时的解决方法)。

但是,这意味着.htaccess将为插件域启用覆盖,因为它们已为父目录启用。因此,除非服务器配置中的某些内容明确阻止此操作,否则也将为所有子目录启用覆盖。

相关内容