gpt4 book ai didi

php - 用 mod_rewrite 或像 PHP 这样的语言处理友好/干净/漂亮的 URL 更好吗?

转载 作者:可可西里 更新时间:2023-10-31 23:09:42 26 4
gpt4 key购买 nike

我正在开发我的第一个体面大小的 PHP 站点,我对在应用程序中处理干净/友好/漂亮的 URL 的“正确方法”(假设有这样的事情)有点困惑。

在我看来,有两个主要选项(我将使用简化的社交新闻网站作为示例):

1.使用 mod_rewrite 处理所有潜在的 URL。这看起来与以下内容相似,但不完全相同:

RewriteRule ^article/?([^/]*)/?([^/]*)/?([^/]*) /content/articles.php?articleid=$1&slug=$2
RewriteRule ^users/?([^/]*)/?([^/]*) /content/users.php?userid=$1&username=$2
RewriteRule ^search/?([^/]*)/? /content/search.php?query=$1

2。将所有内容传递给某个处理程序脚本并让它处理细节:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) handler.php?content=$1

显然,这都是未经测试的“空中代码”,但您明白了。

  • 这两种方式中的一种会比另一种慢很多吗?大概 mod_rewrite 比较慢,因为我将被迫为此使用 .htaccess 文件。
  • 这两种方法中的任何一种都有严重的缺点吗?
  • 对于这类事情是否有“最佳实践”,或者每个开发人员都倾向于自己决定?我知道 WordPress 使用选项二(尽管当我调查他们是如何做到这一点时,它带来的麻烦多于它的值(value))。

最佳答案

选项 1 (.htaccess 和几个 .php 文件)“过去”经常使用;现在,我看到选项 2 (每个请求都通过一个 .php 文件) 用得更多。

我看到选项 2 的主要优点是:

  • 您可以添加/修改任何类型的 URL,而无需更改任何物理文件,例如 .htaccess
    • 这意味着 URL 的格式可以在您的应用程序的管理部分进行配置,例如
  • 您的 PHP 代码只有一个入口点
    • 这意味着一切都通过 index.php 进行:如果您需要为所有请求执行一些代码,请将其放在那里,并且您确定它将始终执行。
    • 例如,它在 MVC 框架中使用很多。


几年前,我会选择选项 1;现在我使用 MVC 和框架,我总是选择选项 2。

关于php - 用 mod_rewrite 或像 PHP 这样的语言处理友好/干净/漂亮的 URL 更好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2122820/

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