繁体   English   中英

在PHP MVC框架中处理3xx / 4xx请求?

[英]Handling 3xx/4xx requests in a PHP MVC framework?

如果说您正在使用流行:

RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?$1 [L,QSA]

而且您正在尝试使mvc Web框架处理404,如果找不到指定URI的对应视图,您是否会在php应用程序本身中手动发送404 http标头,对吗? 这是在Zend / Kohana和其他框架中完成的吗?

另一个问题,假设您重写了整个站点,并且想要设置301。 您是在配置路由的地方(在Django中使用regex样式,例如urls.py)还是在Virtualhost指令中进行配置?

基本上,如果我的Web框架正在处理路由,我是否必须在VirtualHost中修改RewriteRules?

一般来说,是在404上。

至于永久重定向,我想这取决于上下文。 如果我的路由解决方案支持以任何明智的方式执行此操作,则除非我期望遇到较大的扩展问题,否则我可能会选择这样做。

意思是,如果我处理的流量很大,并且有很多静态内容要服务(但不算太大,以至于我只使用apache作为Web服务器),我可能最终会在fcgi下运行php来使apache进程变薄(并使用比前叉更好的MPM)。 在这种情况下,我可能最终会导致URL短路并让Web服务器执行重定向。

但是即使在这种情况下,也没有理由不首先在路由框架中做到这一点。

这样,即使请求失败,即使它们变慢了,事情仍然可以进行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM