gpt4 book ai didi

PHP 和 URL 重写

转载 作者:行者123 更新时间:2023-12-05 08:44:28 25 4
gpt4 key购买 nike

我需要一些帮助来弄清楚以下 URL 重写规则的含义。我可以理解前三行,但我被 index.php/$1 部分卡住了。 / 在此规则中的确切含义是什么?我总是希望在文件名后看到的唯一内容是查询字符串分隔符 (?)。这是我第一次看到 / 作为分隔符。具体是什么意思?

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php/$1 [PT,L]
</IfModule>

最佳答案

<IfModule mod_rewrite.c>...</IfModule> block 确保仅在 mod_rewrite 时才考虑该 block 中包含的所有内容模块已加载。否则,您要么会遇到服务器错误,要么会忽略所有 URL 重写请求。

下面两行是RewriteRule的条件跟随他们的线。这意味着 RewriteRule只有满足这两个条件才会被评估。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

这些行只是说明重写(RewriteRule 行)只有在服务器上没有与 URI 匹配的现有文件或文件夹时才会发生。如果它们确实存在,那么它们将被提供,除非有一些其他指令阻止它,否则将发生重写。

最后一行将进行实际重写。它将获取网站域名后面的任何内容,并将其附加到以 index.php/ 开头的重写请求中。 .

这是一个例子。

假设您请求 example.com/example-page.html .

如果虚拟主机根文件夹中没有名为 example-page.html 的现有文件或文件夹最后的重写规则会将请求重写为 example.com/index.php/example-page.html .

应用程序这样重写请求的主要原因是为了确保它们有一个单一的入口点,通常称为 Bootstrap ,从安全的角度来看,这被认为是一种很好的做法,并且还提供了更精细的请求控制。

我认为这是一个 very good beginner friendly tutorial对于 mod_rewrite .

关于PHP 和 URL 重写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9934190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com