htaccess重写为restful api

时间:2016-11-25 00:36:35

标签: php apache .htaccess configuration

我正在创建一个基于restful的API,并坚持使用htaccess重写规则。

我目前正在使用这个:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !(.*)\.(css|js|htc|pdf|jpg|jpeg|gif|png|ico)$ [NC]
RewriteRule ^(.*)$ index.php?handler=$1 [QSA,L]
</IfModule>

哪个有效,但是我希望它排除文件扩展名目录,当前的排除没有什么区别。

E.g。

  • / api / object / 1 / list有效
  • /api/object/test.php/js/css等..无效

感谢。

2 个答案:

答案 0 :(得分:1)

您的RewriteCond在所有附加的扩展程序之前包含.

从你的病情中删除\.,它应该是这样的。

RewriteCond %{REQUEST_URI} !(.*)(css|js|htc|pdf|jpg|jpeg|gif|png|ico)$ [NC]

请注意,您将无法在以这些扩展名结尾的方法/对象名称或方法/对象名称中使用包含的扩展名。

答案 1 :(得分:0)

你也可以省略(。*)然后你的条件是:

RewriteCond %{REQUEST_URI} !.(css|js|htc|pdf|jpg|jpeg|gif|png|ico)$ [NC]