我正在创建一个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 文件夹中的任何文件?我试图找到一个现有的答案,但虽然有许多类似的答案,但它们都不是我所需要的。谢谢!
答案 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/