使用htaccess重写URL会收到404错误-AngularJS html5模式

时间:2019-06-28 07:50:37

标签: javascript html angularjs apache .htaccess

删除#和!后,角度js页面刷新404错误。来自URL

我正在做一个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 

我不知道如何解决该问题,谢谢您。

2 个答案:

答案 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]