那么,我有了当前的文件结构:
ROOT
-> /public
-> /user_views
user_handle.php
user_profile.php
user_feed.php
user_settings.php
.htaccess
如您所见,文件夹user_views
包含客户端可能想要查看的一些可能的视图。我想要的,是为客户端插入URL http://example.com/user/
被定向到页面user_handle.php
。这个handle
将作为所有/user/
页面的根文件,并且它将相应地通过许多$_GET
请求拆分为这些页面。
到目前为止,我有以下。htaccess,但它不工作…
RewriteRule ^user/ user_views/user_handle.php [L]
我能做些什么来让这个工作,使url http://example.com/user
重定向到user_views
文件夹中的user_handle
文件?
谢谢!
我不确定我完全理解你的问题,但似乎你想让位于public/user_views
下的user_handle.php
作为你其余PHP文件的"路由器",并让所有请求/user/(例如/user/?page=1)由user_handle.php
处理。
如果是这样的话,你的规则似乎是合法的。我注意到的唯一一件事(我可能错了)是你的.htaccess
位于public
文件夹之外。在这种情况下,你需要把'public/'作为你的规则的一部分。
我重新创建了你描述的文件夹/文件结构,它已经为我工作使用以下。htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^user/ public/user_views/user_handle.php [L]
</IfModule>
很有可能这是问题,但您也可能想要再次检查mod_rewrite
,这是基于规则的重写引擎,在您的服务器/本地环境上启用。当你在任何PHP文件中调用phpinfo()
时,它应该显示在'Loaded modules'下。