htaccess忽略重写到api url

时间:2015-05-21 19:30:26

标签: angularjs .htaccess kirby

我使用angular构建了一个站点的前端,并通过Kirby创建了cms。 Kirby允许您使用cms like so创建的结构构建json api。

我现在要做的是使用Kirby提供的API:

address.com/projects/api 

在我的角度应用中。我正在使用html5和htaccess来重写我的网址,所以我不需要在网址中使用哈希,并且子页面上的页面刷新会被重定向到适当的角度视图。

address.com/work
address.com/about
address.com/single-project

我的htaccess看起来像这样

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !index
RewriteRule (.*) index.html

Kirby也需要自己的htaccess来提供页面,所以我的问题是......是否可以通过address.com/projects/api访问我的json模板并保留角度清晰的URL?

4 个答案:

答案 0 :(得分:2)

如果我正确理解你,你想忽略/ projects / api?然后你可以这样做

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/projects/api [NC]
RewriteCond %{REQUEST_URI} !index
RewriteRule (.*) index.html [L]

答案 1 :(得分:0)

您可以在否定RewriteCond中添加更多排除项:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !/(index|projects/api) [NC]
RewriteRule ^ index.html [L]

答案 2 :(得分:0)

在发布#facepalm之后不久就解决了这个问题。

为相同或类似情况下的任何人提供了附加功能

RewriteRule (api) index.php 

答案 3 :(得分:0)

我遇到了同样的问题,但以上都不解决了我的问题。

我当前的.htaccess如下所示:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^app.mydomain.com [NC]
RewriteRule ^(.*)$ http://www.app.mydomain.com/$1 [L,R=301]

RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
RewriteRule ^ - [L]
RewriteRule ^ /index.html

我的API文件夹路径为http://www.app.mydomain/api