使用htaccess重定向到文件夹

时间:2015-11-12 19:45:46

标签: apache .htaccess mod-rewrite

我正在尝试按以下格式重写网址:

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 

关于如何删除扩展名的问题很多,但这个问题不同......

1 个答案:

答案 0 :(得分:0)

这样做:

RewriteEngine On

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