我开发了一组具有以下文件夹结构的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>
我该如何解决这个问题?
答案 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]