先发生什么事? .htaccess或php代码?
-
03-07-2019 - |
题
如果我使用mod_rewrite来控制我的所有301重定向,那么在我的页面被提供之前是否会发生这种情况?所以如果我在我的页面上运行的php脚本中也有一堆重定向规则,那么.htaccess会先启动吗?
解决方案
当请求受.htaccess文件影响的URI时,Apache将在任何PHP代码执行之前处理任何重写规则。
其他提示
.htaccess将首先开始。如果你看一下Apache请求周期:
PHP是一个响应处理程序。 mod_rewrite在URI转换时运行,但.htaccess和<!> lt; Directory <!> gt;中的重写规则除外;或<!> lt; Location <!> gt;在修复阶段运行的块。这是因为在URI转换之后,Apache不知道它所在的目录(以及哪个<!> lt; Directory <!> gt;或.htaccess要读取)。
为了回应gabriel1836关于图像的问题,我从此演示文稿,但它最初出自本书:在Perl和C中编写Apache模块我强烈推荐。
是的,在提供脚本之前解析.htaccess文件。
.htaccess首先发生。
htaccess由网络服务器控制。此文件将在您的PHP文件之前被考虑在内。
例如,您可以使用htaccess文件限制对特定文件夹的访问。因此,必须在PHP之前负责。
希望这有帮助。
.htaccess是在执行php脚本之前由Apache执行的。 (想象一下如果执行php脚本,然后.htaccess重定向到另一个页面......)。
您始终可以使用以下命令对此进行测试:
wget -S --spider http://yourdomain.com
使用此命令,您可以看到谁正在回复您的请求。
正如所有其他人提到的那样,.htaccess是第一个。
基本上,.htaccess
或多或少需要相关的PHP代码或文件,因为根据<=>中指定的规则,意味着首先运行<=>。