2

使用 Angular,html5Mode(true);我可以让我的索引页面以/setupurl 结尾。这很好,除非访问者按 F5 会中断,因为/setup目录不存在,它只是一个模拟 URL。

如何确保 Angular 映射正确路由index.html并由 Angular 读取,而不是服务器尝试加载索引文件/setup

4

3 回答 3

1

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>
于 2013-04-15T16:59:48.090 回答
0

您必须能够使用 mod_rewrite 来实现。查看 drupal 如何使用它:http ://drupal.org/getting-started/clean-urls

我没有使用过 Angular,但 rewrite 可以将 url 更改为您需要的任何内容。

于 2013-04-15T16:54:33.730 回答
0

您可以禁用对 /setup URL 的直接访问。通过启用 mod_rewrite 和 .htaccess httpd.conf,然后将此代码放在您.htaccessDOCUMENT_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]
于 2013-04-15T16:55:40.320 回答