我使用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?
答案 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