我已经尝试过了
<base href="/index.html"> and/or <base href="/">
我已经配置了我的.htacess:
Options +FollowSymLinks
<ifModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !index
RewriteRule (.*) index1.html [L]
</ifModule>
而且:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
# If the requested pattern is file and file doesn't exist, send 404
RewriteCond %{REQUEST_URI} ^(\/[a-z_\-\s0-9\.]+)+\.[a-zA-Z]{2,4}$
RewriteRule ^ - [L,R=404]
RewriteRule ^(.*) index.html [NC,L]
我也知道我的mod_rewrite已启用:
apache2ctl -M^C
> rewrite_module (shared)
这适用于加载主页,并单击所有链接...但是,如果我通过单击打开/登录,它将正常打开。但是,如果我只是重新加载它,或者输入相同地址的url地址,它将无法正常工作,它会给我404.任何想法?
聚苯乙烯。我正在使用ui-route $locationProvider.html5Mode(true);
所以路由没有#,路由IS /登录,这在所有场景中都有效....除了刷新一个
答案 0 :(得分:0)
主要问题在于apache2.conf,我不知道我不仅要allowRewrite: All
而且还要sites-available/default
apache2.conf
。
所以,这对我有用:
Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_URI} !/api
# otherwise forward it to index.html
RewriteRule ^.*$ - [NC,L]
RewriteRule ^. index.html [NC,L]