如何处理页面刷新

时间:2013-04-15 16:50:31

标签: .htaccess angularjs

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

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

的索引文件

3 个答案:

答案 0 :(得分:1)

Anubhava对我的回答 - 很接近。你的应用程序很可能不仅仅是/ setup ...你可能会有几个URL,而Anubhava的答案你必须为每个URL编辑你的.htaccess文件。这是我使用的,它将所有请求转发到索引文件,除非请求的文件/目录实际存在:

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_METHOD} !OPTIONS
  RewriteRule ^(.*)$ index.html [L]
</IfModule>

答案 1 :(得分:0)

你必须能够用mod_rewrite实现这一目标。看看drupal如何使用它:http://drupal.org/getting-started/clean-urls

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

答案 2 :(得分:0)

您可以停用对/ setup URL的直接访问。通过httpd.conf启用mod_rewrite和.htaccess,然后将此代码放在.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]