我正在做一个angular(1.7.5)项目,我想在其中删除#和!为此,我使用下面的代码
myApp.config(['$locationProvider', function ($locationProvider) {
$locationProvider.html5Mode(true);
}]);
并在根文件夹的index.html中添加了基本标记
<base href="/myApp/">
和.htaccess文件
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !index
RewriteRule (.*) index.html [L]
最后,我删除了#和!从URL中获取,但问题是当我刷新页面或在新标签页中打开相同的URL时,页面显示404错误,
http://localhost/dev/ ----- works fine
但是
http://localhost/dev/login ----404 error
我不知道如何解决该问题,谢谢您。
答案 0 :(得分:0)
尝试像这样修改.htaccess
规则:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^ index.php [L]
答案 1 :(得分:0)
您需要修改.htaccess
。问题是您当前的规则仅转发URL中的第一个路径。相反,您需要使其转发 all 嵌套路径。
RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
RewriteRule ^ - [L]
RewriteRule ^ /index.html [L]