.htaccess 如何处理页面刷新

.htaccess 如何处理页面刷新,.htaccess,angularjs,.htaccess,Angularjs,使用Angular的HTML5模式(true)我可以让我的索引页以/setupurl结尾。这很好,除非访问者点击F5,它会中断,因为/setup目录不存在,它只是一个模拟URL 如何确保角度映射通过index.html正确路由并由Angular读取,而不是服务器尝试加载/setup的索引文件?您必须能够通过mod_rewrite实现这一点。了解drupal如何利用它: 我没有使用Angular,但“重写”可以将url更改为您需要的任何内容。您可以禁用对/setup url的直接访问。通过http

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


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

的索引文件?您必须能够通过mod_rewrite实现这一点。了解drupal如何利用它:


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

您可以禁用对/setup url的直接访问。通过
httpd.conf
启用mod_rewrite和.htaccess,然后将此代码放入
文档根目录下的
.htaccess

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]

阿努巴瓦对我的回答很接近。你的应用程序中很可能不仅仅有/设置。。。您可能会有几个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>

重新启动发动机
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_METHOD}!选择权
重写规则^(.*)$index.html[L]

刚刚离开,因此没有时间给出正确的答案:)您需要通过.htaccess设置服务器来处理路由。请参见此处->