CodeIgniter REST服务器的mod_rewrite规则

时间:2014-02-10 15:13:53

标签: .htaccess codeigniter mod-rewrite

我开发了一组具有以下文件夹结构的API。

- /api
  - config
  - controller
  - lib
  - .htaccess

.htaccess中的当前重写规则如下所示。

RewriteCond %{THE_REQUEST} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

我现在正在添加一些新的API,我想将Phil Sturgeon CodeIgniter REST Server用于这些新的API。我将它们添加为/ api中的/v2文件夹,它构成了文件夹结构。

- /api
  - /config
  - /controller
  - /lib
  - .htaccess
  - /v2
    - # the CI REST Server files go here.

我需要添加一些重写规则,以便进入/ api / v2的所有内容确实去了那里,而不是被我以前的规则重写。我做了以下但它似乎没有工作,我猜它是因为它进入了一个循环。

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteRule ^v2/(.*)$ /api/v2/$1 [NC,L]

RewriteCond %{THE_REQUEST} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

好吧,如果您只想排除真实目录,那么您可以键入api / v2 / etc,如果我理解您的要求,请以这种方式尝试您的htaccess文件。

Options -Indexes
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]