使用 Angular,html5Mode(true);
我可以让我的索引页面以/setup
url 结尾。这很好,除非访问者按 F5 会中断,因为/setup
目录不存在,它只是一个模拟 URL。
如何确保 Angular 映射正确路由index.html
并由 Angular 读取,而不是服务器尝试加载索引文件/setup
Anubhava 对我的回答——很接近。您的应用程序中很可能不仅仅是 /setup ......您可能会有多个 URL,并且根据 Anubhava 的回答,您必须.htaccess
为每个 URL 编辑文件。这是我使用的,它将所有请求转发到索引文件,除非请求的文件/目录实际存在:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_METHOD} !OPTIONS
RewriteRule ^(.*)$ index.html [L]
</IfModule>
您必须能够使用 mod_rewrite 来实现。查看 drupal 如何使用它:http ://drupal.org/getting-started/clean-urls
我没有使用过 Angular,但 rewrite 可以将 url 更改为您需要的任何内容。
您可以禁用对 /setup URL 的直接访问。通过启用 mod_rewrite 和 .htaccess httpd.conf
,然后将此代码放在您.htaccess
的DOCUMENT_ROOT
目录下:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+setup\s [NC]
RewriteRule ^ /index.hml [R=301,L]