如果我使用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代码或文件,因为根据<=>中指定的规则,意味着首先运行<=>。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top