将网站移至新主机导致“禁止”

Posted

技术标签:

【中文标题】将网站移至新主机导致“禁止”【英文标题】:moving website to new hosting causes "forbidden" 【发布时间】:2015-06-09 10:20:50 【问题描述】:

我正在将网站从一台托管服务器移动到另一台托管服务器。我已经上传了文件。我正在使用表单身份验证。基本上,我要搬到 GoDaddy。

我可以直接访问登录表单:www.mysite.com/login.aspx 但是,当我打开 www.mysite.com 时,它会显示

Forbidden
You do not have permission to access this document.

什么会导致这个问题?哪些文件没有权限?我应该修改web.config 还是其他什么?

我使用的是 asp.net 3.5 版。

【问题讨论】:

您的默认页面似乎没有配置 为什么它在以前的网络托管服务器上工作?我的意思是,我真的没有看到为默认页面配置的任何内容。但是如果设置了表单认证,网页是否应该默认重定向到登录页面? 只是为了验证上述建议,设置默认文档并尝试! 【参考方案1】:

问题:

IIS 有默认文档的配置,通常是default.htm、default.aspx 等,但没有login.aspx。如果站点在根文件夹中没有默认文档并且目录浏览功能被禁用,您将收到禁止消息。

解决方案:

根据默认 IIS 配置创建默认文档 或更改 IIS 配置以将 login.aspx 设为默认文档

要创建默认文档,请添加一个新文件,将其命名为 default.htm 并复制到您网站的根目录

<html>
   <head>
      <meta http-equiv="REFRESH" content="0;url=login.aspx">
   </head>
   <body></body>
</html>

要更改 IIS 配置,请转到您的主机设置面板并找到 Web 服务器设置功能,您可以在其中将 login.aspx 添加到您帐户的默认文档列表中。

【讨论】:

【参考方案2】:

在我看来,未设置 IIS 中的默认页面。您的默认页面似乎是登录,而 IIS 默认为默认。

【讨论】:

【参考方案3】:

这可能是因为 IIS 没有找到默认的起始页。在 IIS 中添加默认文档是一种方法。但另一种方法是在 web.config 文件中添加默认文档(起始页)。

假设你想在有人打开你的网站时打开 login.aspx 页面,然后在 web.config 文件中添加以下代码

   <system.webServer>
     <defaultDocument>
            <files>
                <clear />               
                <add value="Login.aspx"/>
            </files>
        </defaultDocument>
    </system.webServer>

【讨论】:

【参考方案4】:

想想你的网络服务器是如何工作的基础知识。

您有一个文件根文件夹(通常命名为 www/ 或 public_html/ 或其他名称,具体取决于您的设置),并且根文件夹中有子文件夹和文件。

Web 服务器的工作原理是它们只允许公共访问您的“公共根文件夹”,而不是您的服务器文件/特定语言文件夹/系统文件夹等。

现在考虑一下您的错误消息,它告诉您“您没有访问此文档的权限”。这基本上是在谈论您的 default.aspx 或 index.html 或在您加载根域时加载的其他形式的默认/索引文件。

这是由于该特定文件/依赖文件等的“权限错误”,正如错误消息所述。您需要检查文件和文件夹的访问模式,这在 unix 中是通过 chmod 命令完成的,在位于 file/folder properties -> security -> Permissions的窗口中> 通常在一组用户中列出,即您的公共/所有用户组(如果存在) 您需要这些设置来授予读取或执行(执行取决于它是什么类型的文件,如果 html/aspx 比读取就足够了,在任何情况下都严格不要写入,因为这允许公众修改您的文件)权限,以便Web 服务器以成功将它们提供给公众。

为了给系统特定的帮助,你的ASP.NET版本不足以解决它,还需要你的IIS信息以及你的服务器和文件系统设置等

【讨论】:

【参考方案5】:

Asp.net 可能没有在您的新服务器上注册。您可以检查它,我将一个简单的 html 文件添加到您的文件夹并尝试浏览它。由于.net未注册,aspx扩展名未知。

你应该运行 aspnet_regiis.exe -ir :

    %windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -ir %windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis.exe -ir

【讨论】:

以上是关于将网站移至新主机导致“禁止”的主要内容,如果未能解决你的问题,请参考以下文章

reset() -“严格标准:只有变量应该通过引用传递”[重复]

cpanel 上传的文件超过了php.ini中的upload_max_filesize指令

如何将 WordPress 网页移至其他托管服务器?

php session.php 错误 Joomla

将 Wordpress 网站移至 /blog 域

防止恶意解析——禁止通过IP直接访问网站