将任何文件夹内的所有索引页重定向到另一个文件,但仍然可以包含它

时间:2019-07-02 15:04:02

标签: php

我需要将以下路径重定向到accessPoint.php,但是在accessPoint.php中,我将需要包含/请求所请求的重定向文件,这可以吗?

.htaccess在根./forms/.htaccess内。

  • ./ forms / form1 / index.php
  • ./ forms / form2 / index.php
  • ./ forms / form3 / index.php
  • ./ forms / form4 / index.php
  • ./ forms / form5 / index.php

以上内容将重定向到 -./accessPoint.php

我现在所拥有的:

RewriteEngine on
RewriteCond %{REQUEST_URI} /*/index.php
RewriteRule ^.*$ /accessPoint.php [R=302,L]

当前accessPoint.php,只是通过尝试包含其中一个文件进行测试,但是什么都没有显示:

<?php

    echo 'access point';

    include './forms/form1/index.php';

编辑

结果是我正在工作,但是包含的文件中的文件现在在错误的文件夹中查找,对此有解决方案吗?

例如以下内容:

<link href="css/structure.css" rel="stylesheet">

正在寻找:http://web-forms.localhost/css/form.css

应该在以下范围内看:http://web-forms.localhost/forms/form1/css/form.css

1 个答案:

答案 0 :(得分:2)

您所描述的是正确的。如图所示,当您包含一个php文件时,它不会通过网络服务器,而只会读取本地文件系统。我怀疑您的RewriteCond不正确。试试这个,例如:

RewriteCond %{REQUEST_URI} "\/index\.php$"

编辑:查看问题中的更新。完全处理这种情况的方法是使用绝对路径,例如

<link href="/css/structure.css" rel="stylesheet">

或者更好的是,使用php确定要包括的内容:

<?php
$BASE_PATH = '/';
echo "<link href=\"{$BASE_PATH}css/structure.css\" rel=\"stylesheet\">"
?>

?>