0

我想扩展以下 .htaccess rewriteCond 以检查请求的文件是否存在于 web 的子文件夹中(并提供它,而不是重定向 - 但提供文件)

# If the requested filename exists, simply serve it.
# We only want to let Apache serve files and not directories.
RewriteCond %{REQUEST_FILENAME} -f    
RewriteRule .? - [L] 

例如,我在 symfony 项目的 Web 文件夹中的子目录中有以下文件

static/contact.php
static/wiki/countries.php

请求 URL 如下所示

localhost/symfony/web/contact.php (www.domain.com/contact.php)
localhost/symfony/web/wiki/countries.php (www.domain.com/wiki/countries.php)

我不想重定向,只想提供内容。

让我进一步详细说明。

我目前正在将一个旧的 php 项目升级到 symfony2 框架。

旧项目的静态页面 URL 结构如下

www.domain.com/faq.php
www.domain.com/contact.php
www.domain.com/wiki/countries.php

现在为了让它按原样工作 - 我必须复制新 symfony2 项目的 WEB 文件夹中的静态页面和 wiki 文件夹。这很好,上面给定的规则/条件可以工作,上面的 URL 也可以工作。

但是我不想将静态页面复制到 WEB 中,因为它会弄乱 WEB 文件夹,并且我想保持它干净 - 所以我将静态页面移动到 WEB 文件夹中名为 static 的子文件夹中。现在上面的 URL 不起作用,并抛出一个找不到页面的错误,因为所有页面都在 web/static 文件夹中。因此,使用当前 Rule / cond 必须将 URL 更改为

www.domain.com/static/faq.php
www.domain.com/static/contact.php
www.domain.com/static/wiki/countries.php

有没有办法可以保留以前的 URL 结构并将静态页面保留在 web 的子文件夹中?我能想到的一种方法是在 WEB 文件夹中的 .htaccesss 文件中有一个条件和规则,以检查静态文件夹中的请求文件,如果找到,则提供它们(不重定向)

感谢您的时间和帮助,非常感谢。

4

0 回答 0