.htaccess 静态文件夹通常重定向

问题描述 投票:0回答:2

我有一个

.htaccess
文件,它将每个请求重定向到
./core/index.php
。但对于
./node_modules/
./assets/
文件夹中的静态文件,我想为它们启用正常重定向。

那么,

  1. 如果请求:
    url/whatever/page/
    -> 重定向到:
    core/index.php
  2. 如果请求:
    url/assets/image/file.png
    -> 获取:
    assets/image/file.png
  3. 如果请求:
    url/node_modules/css/file.css
    -> 获取:
    node_modules/css/file.css

我当前的代码:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ core/index.php [L,QSA]
apache .htaccess
2个回答
0
投票

所以你可以做的是,首先检查它是否转到资产,然后重定向到那里,然后重定向到node_modules。现在,如果没有满足任何条件,那么您将重定向到索引:

RewriteEngine On

RewriteCond %{DOCUMENT_ROOT}/assets/$1 -f
RewriteRule ^(.+) assets/$1 [L]

RewriteCond %{DOCUMENT_ROOT}/node_modules/$1 -f
RewriteRule ^(.+) node_modules/$1 [L]

RewriteCond %{THE_REQUEST} \s/assets/ [NC,OR]
RewriteCond %{THE_REQUEST} \s/node_modules/ [NC,OR]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ core/index.php [L,QSA]

0
投票

有两种选择:

任一使用条件:

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/assets/
RewriteCond %{REQUEST_URI} !^/node_modules/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ core/index.php [L,QSA]

或明确的例外:

RewriteEngine On
RewriteRule ^/?assets/ - [END]
RewriteRule ^/?node_modules/ - [END]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ core/index.php [L,QSA]
© www.soinside.com 2019 - 2024. All rights reserved.