在使用URL重写美化的时候,有没有想过是用PHP脚本做内容计算,还是硬编码到.htaccess文件中?
例如,WP 将简单规则添加到.htaccess 文件中
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
它将所有内容定向到 index.php 页面。然后它有一个 PHP 脚本 (canonical.php) 解析 $_SERVER['REQUEST_URI'] 以找出实际提取的内容。
无需使用 PHP 来处理所有这些,它可以直接输入到 .htaccess 文件中,从 URL 传递查询项,类似于:
RewriteRule ^products/([0-9][0-9])/$ /productinfo.php?prodID=$1
有谁知道这两种方法的优缺点?我认为 PHP 方法提供了更多的灵 active ,但我可能错了。我不知道哪个开销更大。
最佳答案
我的意见是 PHP 处理要好得多。唯一可能的减号是它可能会更慢,但不会太多,在整个页面生成时间中您不会注意到任何差异。但缺点是:
- 如果您的网站增长,您必须在 .htaccess 中提供新规则 每次都是,不太方便。例如,如果你想添加 一些脚本调用的另一个 GET 参数,你必须修改 再次规则。
- 当你从一个主机上移动时,它不舒服 给另一个。在某些情况下,您需要更改目录 结构,以及依赖于它的所有规则。
- 如果您出于某种原因决定将您的站点从 Apache 迁移到 nginx、IIS 或某些 其他服务器,你将有很多麻烦转换你的 .htaccess 规则转换为其他一些服务器格式。
所以用 PHP 处理这些肯定更好。
关于php - URL 重写,使用.htaccess 还是PHP 来确定使用的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9098126/