【发布时间】:2010-09-14 13:49:26
【问题描述】:
如果我使用 mod_rewrite 来控制我的所有 301 重定向,这会在我的页面被提供之前发生吗?因此,如果我在页面上运行的 php 脚本中也有一堆重定向规则,那么 .htaccess 会先启动吗?
【问题讨论】:
标签: php apache .htaccess mod-rewrite
如果我使用 mod_rewrite 来控制我的所有 301 重定向,这会在我的页面被提供之前发生吗?因此,如果我在页面上运行的 php 脚本中也有一堆重定向规则,那么 .htaccess 会先启动吗?
【问题讨论】:
标签: php apache .htaccess mod-rewrite
是的,.htaccess 文件在您的脚本被提供之前被解析。
【讨论】:
.htaccess 首先发生。
【讨论】:
当对受 .htaccess 文件影响的 URI 发出请求时,Apache 将在您的任何 PHP 代码执行之前处理所有重写规则。
【讨论】:
htaccess 由网络服务器控制。此文件将在您的 PHP 文件之前考虑在内。
例如,您可以使用 htaccess 文件限制对特定文件夹的访问。所以,它必须在你的 PHP 之前负责。
希望这会有所帮助。
【讨论】:
.htaccess 在 php 脚本执行之前由 Apache 执行。 (想象一下,如果执行了 php 脚本,然后 .htaccess 重定向到另一个页面......)。
【讨论】:
.htaccess 将首先启动。如果你看一下 Apache 的请求周期:
PHP 是一个响应处理程序。 mod_rewrite 在 URI 转换时运行,除了在修复阶段运行的 .htaccess 和
针对 gabriel1836 关于图片的问题,我从this presentation 的第二张幻灯片中抓取了它,但它最初来自本书:Writing Apache Modules in Perl and C,我强烈推荐。
【讨论】:
您始终可以使用以下命令对此进行测试:
wget -S --spider http://yourdomain.com
使用此命令,您可以看到谁在响应您的请求。
正如所有其他人提到的,.htaccess 是第一位的。
【讨论】:
所以基本上.htaccess或多或少需要相关的PHP代码或文件,按照.htaccess中指定的规则,意味着.htaccess首先运行。
【讨论】: