感谢您抽出宝贵时间阅读本文。
我有一个带有自定义结构的PHP项目,其中主页位于多个文件夹中:
\web\views\site\test.php
我希望能够在用户直接访问我的网站索引时加载此页面,但我需要保留索引的URL。所以,如果你输入
http://example.com/
它应显示http://example.com/web/views/site/test.php
的内容,但原始网址无法更改(http://example.com/
)。
此外,如果用户输入http://example.com/web/views/site/test.php
,则应转到http://example.com/
,因此在这种情况下,网址必须更改。
我已尝试过目前为止我见过的其他帖子,但几乎每次尝试都会得到500 Internal Server Error
。是否有可能仅使用htaccess来实现这一目标?
谢谢!
答案 0 :(得分:1)
如果我理解你,在这里你不需要创建或更改@ .htaccess文件。
你所要做的就是在主目录中写下@ index.php中的一个代码,根据你的服务器配置你可能会遇到错误,但是逐个尝试它们你会得到它: 强>
<?php
$test = file_get_contents("web/views/site/test.php");
echo ($test); // option 1
include("web/views/site/test.php");// option 2
require('web/views/site/test.php'); // option 3
require_once('web/views/site/test.php'); // option 4
include($_SERVER['DOCUMENT_ROOT'].'/web/views/site/test.php');// option 5
require($_SERVER['DOCUMENT_ROOT'].'/web/views/site/test.php');// option 6
require_once($_SERVER['DOCUMENT_ROOT'].'/web/views/site/test.php');//option 7
?>
注意:请确保仅在路径中使用选项5,6和7
UPDATE 关于你的评论,我认为你需要的是以下代码:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?yoursite.com$
RewriteCond %{REQUEST_URI} !^/web/views/site/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /web/views/site/$1
RewriteCond %{HTTP_HOST} ^(www.)?yoursite.com$
RewriteRule ^(/)?$ /web/views/site/index.php [L]
以上代码将允许您从web / views / site和路径中打开主目录中的所有内容,因此当您请求时 yoursite.come / test.php就像你请求yoursite.come / web / views / site / test.php一样,所以不同的URL具有相同的内容