繁体   English   中英

使用Apache PHP重写URL

[英]Rewrite urls using Apache PHP

我有许多存储在数据库中的URL,因此我没有在.htaccess中为每个URL添加重写规则,而是在htaccess中使用以下代码,通过以下Apache中的ReWrite规则将控制权交给PHP代码:

RewriteRule ^.*$ ./index.php

数据库中提到的URL具有相应的原始URL。 但是,棘手的情况是,当我必须使用相应的原始URL提供从DB提取的url的内容时,ReWrite规则的原始URL用.htaccess编写。 一种解决方案是对从PHP中从DB中获取的URL实施与Apache为原始URL编写的URL相同的重写规则,但是,这样的原始URL数量很多。

因此,如果有可能的话,很高兴知道一个解决方案,该解决方案可以在PHP内的处理完成之后,使执行流经Apache中提到的ReWrite规则。

如果您有权访问主要的httpd.conf,则可以使用用PHP编写的RewriteMap

除此之外,您无法将PHP的控制权交还给Apache,因此Apache可以进一步处理它,而不是在同一请求中。 您可以从PHP进行30倍的重写,以使Apache可以处理下一个请求。

基本重写,而不是创建一个Apache规则,将所有404错误重定向到一个php文件,该文件将作为您的url处理程序,使用请求的url在数据库中的url列表中查找,将原始url返回给您的处理程序,从无论您执行哪个操作,都可以执行重定向或获取页面内容(在服务器端/ ajax在页面/ iframe中),如果所请求的URL不在列表中显示您的自定义404页面,则会杀死两只小鸟。

设置404页面: http//www.404-error-page.com/404-create-a-custom-404-error-page.shtml

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM