htaccess将多个目录重写为一个文件

时间:2015-05-30 20:40:17

标签: php .htaccess mod-rewrite

我现在开始觉得有点傻了。我第一次没有像CI或Laravel这样的已建立的PHP框架工作,我有一个问题,htaccess将文件夹路径结构重定向到文件夹中的索引文件。

这是一个例子: 我有四个网址如下:

http://www.example.com <-- this is a WurstPress site - the client's choice, not mine)
http://www.example.com/user <-- "user" is an actual folder with an index.php file in it
http://www.example.com/user/settings/private
http://www.example.com/user/settings/public

问题是我可以访问root上的WP站点,我可以访问/ user url没问题。但是我想要将两个设置网址重写到包含完整网址路径的/user/index.php文件中,就像CI或Laravel一样,以便我可以获取网址的各个部分,如下所示:{{3} } 我不想在那里重定向用户,但我需要index.php脚本来查看请求uri并查看/user/index.php/settings/private路径。

我一直在努力解决这个问题太久了,我知道这是一件很简单的事情,我只是没有看到,所以我很感激大家的帮助。

这是我的.htaccess文件:

<IfModule mod_rewrite.c>
Options +FollowSymLinks -Indexes
Options -MultiViews
RewriteEngine On
RewriteBase /

RewriteRule ^/user/(.*) /user/index.php$1 [L]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

请记住,我无法点击客户端的WP网站,因此无法更改基本路径,我也需要将WP内容留在那里。我在上面添加了我的代码。我已经为用户路径尝试了那一行的一百个或更多种组合。

在我的user / index.php文件中,我目前只是尝试输出请求URI,但我只是改为找不到WP页面。

1 个答案:

答案 0 :(得分:1)

RewriteRule ^user/(.*)$ user/index.php$1 [L]

您也可以这样做:

RewriteRule ^user/(.*)$ user/index.php?request=$1 [L]