Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 使用htaccess重定向到文件夹_Apache_.htaccess_Mod Rewrite - Fatal编程技术网

Apache 使用htaccess重定向到文件夹

Apache 使用htaccess重定向到文件夹,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我正在尝试以以下格式重写URL: localhost/project/index 然而index.php实际上存在于project/pages/index.php 我通过更改httpd.conf并添加页面pages/index.php 然后我用HTACCESS重写以删除扩展,如下所示 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule ^(

我正在尝试以以下格式重写URL:

localhost/project/index

然而index.php实际上存在于
project/pages/index.php

我通过更改
httpd.conf
并添加页面
pages/index.php

然后我用HTACCESS重写以删除扩展,如下所示

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ pages/$1.php [L]
但是,对于索引以外的任何文件,它都不起作用,因为显然我没有正确重定向

例如,对于
localhost/project/test

我实际上希望它呈现
localhost/project/pages/test.php

老实说,我不知道这些htaccess规则是做什么的,所以我不知道如何更改它

这是我的项目目录结构:

wamp/www/project/ \____ pages/ \____ index.php \____ test.php \____ js/ \____ img/ \____ .htaccess
wamp/www/project/ \____页数/ \____index.php \____test.php \____js/ \____img/ \____.htaccess
有关如何删除扩展名的问题很多,但这个问题不同……

请按以下方式执行:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/project/pages/$1\.php -f
RewriteRule ^(.+?)/?$ pages/$1.php [L]

成功了,谢谢。但是现在我在包含php文件方面遇到了问题。。例如,在
project/pages/test.php
中,我包括
php/classes/helper.php
,并且
php
文件夹指向
project
文件夹下。。所以我必须做
include(“../php/classes/helper.php”)有办法解决这个问题吗?i、 e相对于项目文件夹的include?PHP include是不受重写规则影响的服务器端指令。您应该在
ini.php
中正确设置include路径。