根目录和子目录的Angular.htaccess



我在一台服务器上使用多个角度项目,这是我的项目的文件夹结构

Root: Project-1
Root/test : Project2
Root/test/new : project3

这是我正在使用的htaccess代码。但是子目录项目有时不起作用

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

问题是,当我试图使用这个url访问第二个项目www.domain.com/test时,它会重定向到root文件夹,即project1。我认为它是在检查项目1的路由,当iIaccess项目2 时

我该如何解决这个问题。

我有一个类似的项目结构,下面的.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>

看看它是否有效。

看看我的朋友。你想做的事很容易解决。

有两个重要的地方可以让Angular清楚地了解你的应用程序启动url:

1-在index.html文件中

2-在服务器上的.htaccess文件中

您必须对";项目2";如下所示。

1-您可以在Angular应用程序的index.html中查看您的代码中的以下代码行:

<base href = "/" />

您将通过放置以下进行修改

<base href = "/test/" />

2-在root/test目录的根目录中创建.htaces文件,文件内容如下:

RewriteEngine On
RewriteCond% {HTTPS}! = On
RewriteRule ^ (. *) $ Https: //% {HTTP_HOST}% {REQUEST_URI} [L, R = 301, NE]
Header always set Content-Security-Policy "upgrade-insecure-requests;"

# If a path or directory request exists, go to it as is
RewriteCond% {DOCUMENT_ROOT}% {REQUEST_URI} -f [OR]
RewriteCond% {DOCUMENT_ROOT}% {REQUEST_URI} -d
RewriteRule ^ - [L]
# If the source of the request does not exist, use index.html
RewriteRule ^ /index.html

请注意,在最后一行RewriteRule ^ /index.html中,将其更改为编译的index.html文件的路径,如下所示:

RewriteRule ^ /test/index.html

仅此而已。现在,您将对Project3执行相同的过程,您将看到一切是如何完美工作的。Ej:在index.html<base href = "/test/new/" />中和在.htaccessRewriteRule ^ /test/new/index.html

最新更新