2017-03-12 217 views
0

我需要删除部分url。重写URL删除部分URl

http://whatever.net/api/users/1 

我想没有api路径重定向该请求到位于名为同一目录中的文件api.php

我有以下目录结构

root/api/{here we are}

所以,我需要我的api.php文件仅在此情况下收到user/1

我曾尝试以下的配置,但它不工作 - 找不到

<IfModule mod_rewrite.c> 
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^api/(.*)$ api.php/$1 [L] 
</IfModule> 

请帮助得到这个工作

+0

那么'api.php'是否在'api'文件夹中呢?还是他们在同一个水平上?你的.htaccess位于哪里? – CBroe

+0

_“所以我需要我的'api.php'文件在这种情况下只接收'user/1'”_ - define“receive”。您对已经给出的答案进行了评论,即您“需要使用htaccess来完成此操作” - 但您的PHP脚本必须准备好读取以这种方式传递的数据。 (这里的关键字是_path info_。) – CBroe

回答

0

使用的.htaccess

传递修改后的路径作为变量

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^api/(.*)$ api.php?path=$1 [L] 
</IfModule> 


使用PHP

在api.php,使用它之前剥去从REQEST_URI的前四个字符(I,E/API)。

$required_value = substr(REQUEST_URI,5); 
+0

我需要使用htaccess – Ptzhub