Symfony2 .htaccess还应检查所请求的文件是否存在于web中的子目录中并提供服务

时间:2013-11-14 09:23:34

标签: php apache .htaccess symfony mod-rewrite

我想扩展以下.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

请求网址如下所示

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

现在为了让它按原样工作 - 我必须将静态页面和wiki文件夹复制到新symfony2项目的WEB文件夹中。哪个没问题,上面给出的规则/条件都可行,上面的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

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

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

0 个答案:

没有答案