【发布时间】:2011-02-28 21:23:23
【问题描述】:
我在将子目录设置为我的主域的 public_html 时遇到问题,并获得了适用于该域子目录的解决方案。
背景
我的托管允许我托管多个站点,这些站点都运行良好。我在我的 ~/public_html/ 目录下设置了一个名为 /domains/ 的子文件夹,我在其中为每个单独的网站创建一个文件夹。我服务器上的文件夹结构如下所示:
- public_html
- 域
- 网站一个
- 网站二
- 网站三
- ...
- 域
这使我的网站保持整洁。唯一的问题是让我的“主域”适应这个系统。似乎我的主域以某种方式与我的帐户(或 Apache 或其他东西)相关联,因此我无法更改此域的“文档根目录”。我可以为我在 cPanel 中添加的任何其他域(“附加域”)定义文档根目录,这没有问题。但主域不同。
问题
有人告诉我编辑 .htaccess 文件,将主域重定向到子目录。这似乎很好用,而且我的网站在它的主页/索引页面上运行良好。
我遇到的问题是,如果我尝试导航浏览器以说出我的主站点的图像文件夹(仅作为示例),如下所示:
www.yourmaindomain.com/images/
然后它似乎忽略了重定向并在 url 中显示整个服务器目录,如下所示:
www.yourmaindomain.com/domains/yourmaindomain/images/
它实际上仍然显示正确的“/图像索引”页面,并显示我所有图像的列表。问题只是“漂亮”的 URL。
我的 .htaccess 示例
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?yourmaindomain.com$
RewriteCond %{REQUEST_URI} !^/domains/yourmaindomain/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /domains/yourmaindomain/$1
RewriteCond %{HTTP_HOST} ^(www.)?yourmaindomain.com$
RewriteRule ^(/)?$ domains/yourmaindomain/index.html [L]
这个 htaccess 文件看起来正确吗?我只需要让我的主域表现得像一个插件域,并且它的子目录遵守重定向规则。
【问题讨论】:
-
应该被移到serverfault。
-
您最终是否使用虚拟主机解决了这个问题(根据公认的解决方案)?我有同样的问题,但不能在我的共享主机上使用虚拟主机 - 所以不幸的是,该解决方案实际上并没有为我解决问题。
标签: apache .htaccess sysadmin shared-hosting cpanel