【发布时间】:2016-05-24 14:10:21
【问题描述】:
我已经使用 Yii 框架开发了一个网站,现在我需要将它转移到 hostgator 廉价托管,用于单个网站。看起来它希望网站必须放在根文件夹中,但我的网站有一个 www 文件夹,其中包含 index.php 和资源文件,如 js、css、images 等。此文件夹还包含一个文件 htaccess,其内容如下:
RewriteEngine on
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.php
RewriteRule . index.php
但我想我必须在根文件夹中添加另一个 htaccess,以便所有请求都会重定向到 www 文件夹。 (我做到了并尝试了重写规则的不同组合,但它们不能正常工作)。我猜我应该从 www 文件夹中删除 htaccess 并在根文件夹中只保留一个。 抱歉各位,即使在阅读文档后,我也总是遇到 htaccess 问题。
提前致谢。
【问题讨论】:
-
不应该将
www目录设置为文档根目录吗?我确信 HostGator 允许您将目录和文件放置在文档根目录上方(通常为public_html)。 -
Cpanel 向我显示了一些路径:Web 根目录 -
/home/mysitename工作目录 -/home/mysitename/public_html但我无法通过 ftp 访问文件夹/home/mysitename。我只能访问/home/mysitename/public_html所以我想我只有一个选择:添加重定向到文件夹/home/mysitename/public_html/www并将Yii 文件存储在/home/mysitename/public_html这就是为什么我需要修复htaccess 文件之间的冲突。我也不能使用插件域,因为我使用了一个托管包“Hatchling”,它不允许使用它们。 -
您可以简单地将
.htaccess文件移动到public_html并将规则更改为RewriteRule . /www/index.php [L]。也就是说,任何不允许您访问站点主目录的主机都是愚蠢的。我在我的国家/地区有免费托管允许它,所以我不知道 Hostgator 在这方面的问题是什么。 -
不幸的是它不起作用。服务器改为显示文件列表。我找到了这个htaccess。它适用于主页,但对于
http://my_domain/somepage之类的页面,它会显示404。 -
然后也许尝试将
RewriteRule ^(.*)$ /www/$1 [L]放入/.htaccess,然后将RewriteRule ^ index.php [L]放入/www/.htaccess。记住在两个文件中都有RewriteEngine On。
标签: apache .htaccess mod-rewrite hosting