.htaccess网址以获取参数

Froxz

我正在尝试创建一个小型api,我在该文件夹中有一个名为api的文件夹,index.php.htaccess我要尝试执行的操作是在访问api/something时将最后一个参数转换为,api/?x=something并在php中检查函数是否something存在(如果没有显示404则调用它) 。

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-s
    RewriteRule ^(.*)$ index.php?x=$1 [QSA,NC,L]

    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^(.*)$ index.php [QSA,NC,L]

    RewriteCond %{REQUEST_FILENAME} -s
    RewriteRule ^(.*)$ index.php [QSA,NC,L] 
</IfModule>

如果访问api文件夹,它的工作原理,但如果我api/something没有添加

如果很重要:文件夹的结构是这样的:root_website_folder/sub_folder/api当它重写“某物”时,如果存在x=somethingx将调用func名称

public function init(){
        $func = strtolower(trim(str_replace("/", "", $_REQUEST['x'])));
        var_dump($func);
        if((int)method_exists($this,$func) > 0){
            $this->$func();
        }else{
            $this->response('', 401);
        }   
    }
隐晶

您尚未专门为api添加规则。以下应该工作:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-s
RewriteCond  %{REQUEST_URI} !^/api
RewriteRule ^(.*)$ index.php?x=$1 [QSA,NC,L]

RewriteRule ^api/(.*)$ api/index.php?x=$1 [QSA,NC,L]

RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.*)$ index.php [QSA,NC,L]

RewriteCond %{REQUEST_FILENAME} -s
RewriteRule ^(.*)$ index.php [QSA,NC,L] 

这可以通过排除/ api请求使其不被^(.*)$规则捕获来实现

通常,您可以在http://htaccess.mwl.be/上测试重写规则(与该规则无关,我觉得它很有用)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用RewriteRule .htaccess获取此参数网址

来自分类Dev

获取网址参数

来自分类Dev

从网址参数获取ID

来自分类Dev

如何从网址获取参数?

来自分类Dev

从网址获取参数段

来自分类Dev

如何从网址获取参数

来自分类Dev

如何在.htaccess网址重写中以多种方式获取请求参数的值

来自分类Dev

在angularjs中获取网址参数

来自分类Dev

从Angular的网址中获取参数

来自分类Dev

在angularjs中获取网址参数

来自分类Dev

如何从当前网址获取参数

来自分类Dev

htaccess带有参数的重定向网址

来自分类Dev

htaccess从网址中删除参数名称

来自分类Dev

网址中的htaccess rewriterule 2参数

来自分类Dev

无法从.htaccess生成的网址获取变量

来自分类Dev

无法从htaccess重写网址获取变量

来自分类Dev

PHP从使用htaccess修改的网址获取变量

来自分类Dev

JavaScript获取网址段和参数

来自分类Dev

.htacess漂亮的网址,也允许正常的获取参数

来自分类Dev

如何从Silex中的网址获取参数

来自分类Dev

如何获取网络应用网址的查询参数?

来自分类Dev

从网址获取最后一个参数

来自分类Dev

_googWcm获取Google AdWords测试网址参数

来自分类Dev

使用htaccess删除了参数,但仍然具有清理网址和参数网址

来自分类Dev

.htaccess从网址中删除index.php并隐藏参数键

来自分类Dev

具有参数2的HTACCESS友好网址

来自分类Dev

将网站网址作为htaccess中的参数传递

来自分类Dev

通过htaccess删除网址中的参数表格

来自分类Dev

网址以斜杠结尾时,htaccess rewriterule返回错误的参数