【发布时间】:2021-09-03 12:05:44
【问题描述】:
我们有一个 GoDaddy 主机。在 public_html 中,我们有许多文件夹,每个文件夹用于不同的站点。
主站点 (mysite.com) 通常应位于 public_html,但我们将它们移至 public_html/mysite。我们有一个 htaccess 文件来处理这个变化。
mysite.com 是一个精简的 (PHP) 网站。在其公用文件夹中是另一个重定向到公用子文件夹的 htaccess 文件。
我们试图将 mysite 重定向到不同的网址,但出现了问题。现在,如果我访问 mysite.com,它会显示 Forbidden。此外,FTP 不再工作。当我尝试与 Filezilla 连接时,我得到了
Connection attempt failed with "EAI_NONAME - Neither nodename nor servname provided, or not known".
这是因为我尝试连接到 ftp.mysite.com。如果我将其更改为 IP,它确实有效。但显然 mysite.com 出了点问题。
public_html/mysite中当前的htaccess如下:
RewriteCond %{HTTP_HOST} ^(www\.)?mysite\.com$ [NC]
RewriteRule ^(?!public)(.*)$ /public/$1 [L]
关于如何让它再次工作的任何想法?我认为问题在于域指向 public_html 文件夹的根目录而不是 public_html/mysite 但不知道如何解决这个问题。
更新
我们在 public_html 文件夹中有一个 htaccess 文件
RewriteOptions inherit
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?mysite\.com$ [NC]
RewriteRule ^(?!mysite)(.*)$ /mysite/$1 [L]
如果我删除它,所有子域都可以工作,但 mysite.com 会显示 Forbidden。如果我启用该文件,那么包括 mysite.com 在内的每个子域都会显示内部服务器错误。
【问题讨论】:
-
尝试注释掉
RewriteOptions inherit -
@anubhava 这行得通。谢谢
标签: apache .htaccess mod-rewrite http-redirect