设置 .htaccess 以从主子文件夹而不是 public_html 读取静态文件夹

Setup .htaccess to read static folder from a main subfolder instead the public_html

我决定将我的 react-app 文件更改为子文件夹 public_html/main/ --出于 git 自动化原因--,然后我也对我的 .htaccess 文件进行了一些更改,以便它可以读取主文件夹。

现在,读取 main/index.html 工作正常,虽然 .htaccess 没有在 main 中检测到 static/,而是在 [=19= 中寻找它] (我知道它是因为当我把 static 放在那里时它起作用了)。我需要以某种方式更改此点文件以读取子文件夹中的静态文件。

我的服务器上有下一个文件夹树结构:

public_html/
  .htaccess
  main/
    index.html
    static/
      css/
      js/
      media/

虽然 .htaccess 看起来像:

<IfModule mod_rewrite.c>

    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.html$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l
    RewriteRule . /index.html [L]
    RewriteCond %{HTTP_HOST} ^(www.)?udecursos.study$
    RewriteCond %{REQUEST_URI} !^/main/
    RewriteRule ^(.*)$ /main/
    RewriteCond %{HTTP_HOST} ^(www.)?udecursos.study$

</IfModule>

我设法解决了这个问题,当我知道您可以在两个文件夹(根文件夹和子文件夹)中都有一个 .htaccess 文件时。当子文件夹中的点文件将覆盖其他文件时 .htaccess.

所以我这样配置根 (public_html/) .htaccess:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www.)?udecursos.study$
RewriteCond %{REQUEST_URI} !^/main/
RewriteRule ^(.*)$ /main/
RewriteCond %{HTTP_HOST} ^(www.)?udecursos.study$

在位置为 public_html/main/ 的子文件夹中,.htaccess 结束 像这样:

<IfModule mod_rewrite.c>

    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.html$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l
    RewriteRule . /index.html [L]

</IfModule>

实际工作并阅读所需的文件。