.htaccess重定向不适用于Angular 4

enxuqcxy  于 2022-11-16  发布在  Angular
关注(0)|答案(2)|浏览(200)

我知道很多人都问这个问题,但我看过所有的答案,没有一个是有效的。
我确信问题是我需要创建一个.htaccess文件并将其添加到我的dist中,因为这是ISP控制台指南所说要做的。
我正在使用Angular cli和build命令:

ng build --aot --prod --base-href ./

我已经将这个.htaccess文件添加到我的app文件夹--与我的index.html文件夹相同。

RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} -s [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ - [NC,L]

    RewriteRule ^(.*) /index.html [NC,L]

我尝试了SO上各种不同答案的片段,我尝试了www.example.com指南上的片段angular.io,我尝试了改变base-href。似乎没有任何效果,我甚至不能确定它是否正确地添加到了构建中的dist中。我该怎么办?

kcugc4gi

kcugc4gi1#

在和我的主机提供商的技术团队大吵大闹之后,他们确认我的.htaccess文件不是通过FTP客户端上传的。看起来我应该在构建后将其添加到dist文件夹中。他们添加的.htaccess文件的代码和我之前尝试过的一个版本是一样的,它工作得很好:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
</IfModule>
bksxznpy

bksxznpy2#

显示文档https://angular-doc.ru/guide/deployment

RewriteEngine On
    # If an existing asset or directory is requested go to it as it is
    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR]
    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
    RewriteRule ^ - [L]

    # If the requested resource doesn't exist, use index.html
RewriteRule ^ /index.html

相关问题