Htaccess忽略重写为API url



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

我现在要做的是使用Kirby提供的api,它是:

address.com/projects/api 
我使用html5和htaccess来重写我的url,这样我就不需要在url中使用散列,并且子页面上的页面刷新会被重定向到适当的angular视图。
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来服务页面,所以我的问题是…是否有可能允许访问我的json模板address.com/projects/api,仍然保留角干净的url ?

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

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

您可以在您的阴性RewriteCond中添加更多排除:

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

贴完#facepalm就解决了。

在相同或类似情况下对任何人都起作用的额外行

RewriteRule (api) index.php 

我有同样的问题,但以上都没有解决我的问题。

我当前的。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

相关内容

  • 没有找到相关文章

最新更新