在 SilverStripe 3.1 中使用 htaccess 的子域出现 500 内部服务器错误
500 Internal Server Error for sub domain using htaccess in SilverStripe 3.1
我收到一个子域的 500 服务器错误。它在安装 SilverStripe 3 之前运行良好。是否需要对 SilverStripe 安装创建的默认 .htaccess
进行任何修改?
此答案根据您的问题做出了一些假设。
这些假设是
- 您的 SilverStripe 网站是根网站(例如 http://www.example.com)
- 您的 SilverStripe 代码位于网站根目录中(例如
/public_html
)
- 您的子域代码位于网站根目录的子文件夹中(例如
/public_html/sub
上述情况可能出现的问题是子域可能使用/public_html/.htaccess
文件并使用其mod_rewrite
规则。
为了解决这个问题,我们可以使用以下代码在子域 (/public_html/sub/.htaccess
) 中创建一个 .htaccess
文件:
<IfModule mod_rewrite.c>
SetEnv HTTP_MOD_REWRITE On
RewriteEngine On
RewriteBase /
</IfModule>
这将告诉服务器不要使用 mod_rewrite
规则或根 .htaccess
文件的基础。
另一种解决方案是不将子域代码放在根 Web 目录的子文件夹中。您可以在根级别创建一个文件夹,例如 /sub
并将您的子域指向那里。
感谢大家的支持,但我的方法不同。
我已经从 cpanel 创建了子域,但选择了相同的根文件夹而不是创建新目录。
我从这里得到了帮助。
https://forums.cpanel.net/threads/domain-redirecting-to-cgi-sys-defaultwebpage-cgi.139597/page-3#post-656642
我收到一个子域的 500 服务器错误。它在安装 SilverStripe 3 之前运行良好。是否需要对 SilverStripe 安装创建的默认 .htaccess
进行任何修改?
此答案根据您的问题做出了一些假设。
这些假设是
- 您的 SilverStripe 网站是根网站(例如 http://www.example.com)
- 您的 SilverStripe 代码位于网站根目录中(例如
/public_html
) - 您的子域代码位于网站根目录的子文件夹中(例如
/public_html/sub
上述情况可能出现的问题是子域可能使用/public_html/.htaccess
文件并使用其mod_rewrite
规则。
为了解决这个问题,我们可以使用以下代码在子域 (/public_html/sub/.htaccess
) 中创建一个 .htaccess
文件:
<IfModule mod_rewrite.c>
SetEnv HTTP_MOD_REWRITE On
RewriteEngine On
RewriteBase /
</IfModule>
这将告诉服务器不要使用 mod_rewrite
规则或根 .htaccess
文件的基础。
另一种解决方案是不将子域代码放在根 Web 目录的子文件夹中。您可以在根级别创建一个文件夹,例如 /sub
并将您的子域指向那里。
感谢大家的支持,但我的方法不同。
我已经从 cpanel 创建了子域,但选择了相同的根文件夹而不是创建新目录。
我从这里得到了帮助。
https://forums.cpanel.net/threads/domain-redirecting-to-cgi-sys-defaultwebpage-cgi.139597/page-3#post-656642