【问题标题】:Change base HTTP requested directory -- CPanel更改基本 HTTP 请求目录——CPanel
【发布时间】:2011-07-17 09:12:34
【问题描述】:

我有一个托管在服务器上的 php 网站。我使用 CPanel 来管理它。 public_html 可以说下面的目录结构

public_html
  - dir1
  - dir2
  - dir3
  - ....other files.....
  - website2home

现在我正在尝试将 website2home 作为我网站的基本目录,但 website2home 中的文件使用 public_html 文件夹中的一些文件和自身内部的一些文件。

问题

当我为 website2home 分配域名时,它不会从public_html 文件夹中读取文件(实际上,public_html 文件夹是不可见的)并显示一些 php 警告和一些 404 未找到错误。但是假设原始网站的域名是www.aaa.com,那么如果我使用www.aaa.com/website2home访问website2home一切正常。

所以我的问题...

有没有办法设置基目录,以便我的 website2home 获取所有文件并更正文件,而无需替换 php 代码中的数百个文件路径?

考虑到我不想修改网站的源文件,请回答。

【问题讨论】:

  • 什么样的文件? css/js/images .. 或include "somefile.php" ?

标签: php http redirect cpanel


【解决方案1】:

我相信您正在寻找某种 .htaccess 配置。例如,您可以将您的 website2home 文件夹设置为您的 www.aaa.com 域的基本文件夹,然后使用 .htaccess 将某些文件访问重定向到其他文件夹,如下所示..

RewriteEngine on
RewriteRule captcha.jpg ../captcha.jpg
RewriteRule \.pdf$ ../pdf_files/$1

看看mod_rewrite documentation

编辑:如果由于某种原因 ../ 重定向不起作用,您始终可以将所有文件重定向到伪索引 PHP 页面。例如:

RewriteEngine on
RewriteRule captcha.jpg my_index.php?access=../captcha.jpg
RewriteRule \.pdf$ my_index.php?access=../pdf_files/$1

然后,在您的索引 PHP 页面中,您可以简单地将 PHP 文件加载到其他文件夹中:

require "../pdf_files/$requested";

【讨论】:

  • 感谢您的回答,但由于 ../ 目录不可见,因此无法使用。
  • 嗯,它在我的生产系统上运行,但也许它取决于一些我不知道的配置系统。无论如何,我已经编辑了答案以包含解决您问题的可能方法。
  • 很好用。但我不知道怎么做?我对这些东西有非常基本的了解,也许我需要一些指导......但是谢谢你的帮助,它现在解决了这个问题
猜你喜欢
  • 1970-01-01
  • 2016-01-07
  • 1970-01-01
  • 2011-09-28
  • 2020-10-23
  • 1970-01-01
  • 1970-01-01
  • 2013-11-08
  • 1970-01-01
相关资源
最近更新 更多