Apache 使用htaccess重定向到文件夹
我正在尝试以以下格式重写URL: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 ^(
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路径。