如果文件存在于子目录中,则重定向

2 apache .htaccess

我试图重定向到文件的子目录,但前提是该文件存在于子目录中。本质上,它的建模如下:

  1. 该文件是否定期存在?如果是,则显示它。
  2. 该文件是否存在于子目录中?如果是这样,重定向到它。
  3. 如果我们在这一点上,路由到 index.php 中的动态脚本。

困难的部分是第 2 步。这是我尝试过的:

RewriteEngine On
RewriteCond engine/%{SCRIPT_FILENAME} -f [OR]
RewriteCond engine/%{REQUEST_FILENAME} -d
RewriteBase /lab
RewriteRule ^(.*)$ /lab/engine/$1  [P]
Run Code Online (Sandbox Code Playgroud)

小智 5

我设法使用稍微不同的方法让它工作。我首先检查该文件是否存在于子目录中,否则我将进入动态控制器——其中包括对真实文件的排除。

目录索引句柄.php

重写引擎开启

# # 检查文件是否存在于“引擎”中
# # ...如果找到,停止并显示它
RewriteCond %{DOCUMENT_ROOT}/lab/engine/$1 -f
重写规则 ^(.*)$ /lab/engine/$1 [L,QSA]

# 如果我们到了这里,路由到动态控制器
重写基础/实验室
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
重写规则 ^(.*)$ handle.php [L,QSA]