![PHP 动态生成重定向](https://linux22.com/image/723239/PHP%20%E5%8A%A8%E6%80%81%E7%94%9F%E6%88%90%E9%87%8D%E5%AE%9A%E5%90%91.png)
我最近将所有规则从 .htacess 文件移到了 .conf 文件中。现在,当我想向我的网站添加重定向规则时,我必须编辑 .conf 文件并sudo apachectl graceful
。
我现在遇到一个问题,我希望能够从 PHP 动态生成重定向规则。以前当我运行 .htacess 文件时,这相对容易 - 只需在其中包含一个 PHP 可以控制的文件,所有重定向都可以完美运行。
现在,我仍然可以使用包含文件,但我不确定(或不满意)PHP 运行apachectl graceful
。
这里最好的解决方案是什么?据我了解,按照我当前的设置,apache 肯定需要重新启动才能使 .conf 文件生效,对吗?如果我重新使用 .htaccess,我是否可以在域的根目录中只使用一个 .htaccess,并限制 apache 使用任何其他 .htaccess 文件,以免减慢我的服务器速度?
答案1
...但我不确定(或者不满意)PHP 运行 apachectl graceful。
嗯,确实如此。你甚至不应该考虑尝试编辑您的服务器配置来自 PHP。这根本不可能,或者如果可能的话,那么在安全方面您就会陷入困境。
...当我运行 .htacess 文件时,它会相对容易 - 只需在其中包含一个 PHP 可以控制的文件,所有重定向都可以完美运行。
你的意思是允许 PHP 编辑你的.htaccess
文件吗?这也存在潜在的安全风险。
但是,.htaccess
甚至您的主服务器配置,不一定是重定向无论如何(假设你谈论的是外部重定向)。这些重定向通常是因为资源/页面已移动并且不再存在。在这种情况下,一旦您确定否则将返回 404,在服务器端代码(即 PHP)中处理重定向通常更有效。重定向是一项低优先级任务。为您的网站访问者提供内容是更高优先级的任务。您不需要对每个请求都执行重定向检查。