避免在MVC中自动PHP路由

时间:2012-11-03 06:20:09

标签: php codeigniter codeigniter-routing

我正在使用 MVC ,在我的应用程序文件中,我采用这种方式进行路由:

# Routing
$routing = array(
    '([a-zA-Z]+)\/?'    =>  array('Post', 'view')
);
framework::routing($routing);

这意味着像“mysite.com/anything/”这样的所有网址都会被路由到同一个模板但内容不同。在那之前,一切都还可以。

我的问题是,我想为此做一个例外,

因为我想直接在浏览器中访问我的页面“mysite.com/uploads”,但由于路由php的原因,我被重定向。

有没有办法对此路由进行例外处理?喜欢路由除“上传”之外的所有名字?

我可以提交路由文件,但因为它几乎与codeigniter相同,所以你真的不需要它。

由于

1 个答案:

答案 0 :(得分:1)

看到你的网址不再包含index.php部分了,我想你添加了一个.htaccess文件来做这件事,可能就像这样(直接来自codeigniter文档):

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

如果是这种情况并且uploads文件夹与codeigniter的根index.php文件位于同一文件夹中,则应将第二行更改为:

RewriteCond $1 !^(index\.php|images|uploads|robots\.txt)

但这完全取决于您的具体配置。

编辑:尽管您似乎没有使用CodeIgniter,但这同样适用于Zend Framework MVC。您应该对重写规则进行例外处理,以允许直接访问您的上传目录。