.htaccess - 将所有内容重定向到主页,但一个目录除外

时间:2015-11-10 16:42:19

标签: angularjs .htaccess

我正在创建一个AngularJS应用,并希望避免使用URL中的#。我了解到我需要添加以下.htaccess规则才能使其正常工作:

RewriteEngine On 
Options FollowSymLinks

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ /#/$1 [L]

这很有效。但是,现在我对我的Web服务的调用无效。 Web服务文件位于 / api / 目录中,例如的 http://example.com/api/ 即可。我的猜测是,当api调用尝试访问这些文件时,它们也会被重定向并中断。那么我如何修改上述规则以将所有内容重定向到主页,除了链接到 api 文件夹中的任何文件?我试图找到一个现有的答案,但虽然有许多类似的答案,但它们都不是我所需要的。谢谢!

1 个答案:

答案 0 :(得分:0)

我找到了我需要的代码:

RewriteEngine On  
  # If an existing asset or directory is requested go to it as it is
  RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR]
  RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
  RewriteRule ^ - [L]

  # If the requested resource doesn't exist, use index.html
  RewriteRule ^ /

这就是你所需要的一切。来自:https://ngmilk.rocks/2015/03/09/angularjs-html5-mode-or-pretty-urls-on-apache-using-htaccess/