【发布时间】:2013-05-13 18:59:19
【问题描述】:
我有许多 url 存储在数据库中,因此我没有在 .htaccess 中为每个 url 添加重写规则,而是在 htaccess 中使用以下代码通过以下 ReWrite 将控制权交给 PHP 代码Apache 中的规则:
RewriteRule ^.*$ ./index.php
数据库中提到的一个url,有一个对应的原始url。但是,当我必须通过相应的原始 url 提供从 DB 获取的 url 的内容时,就会出现棘手的情况,而在 .htaccess 中编写了 ReWrite 规则。一种解决方案是在 PHP 中对从 DB 中获取的 url 实现与在 Apache 中为原始 url 编写的相同的重写规则,但是,这样的原始 url 的数量是巨大的。
因此,如果可能的话,很高兴知道一个解决方案,该解决方案可以在 PHP 内部处理完成后通过 Apache 中提到的 ReWrite 规则执行流程。
【问题讨论】:
-
不需要点
RewriteRule ^.*$ /rewriteurl.php [L]。我猜您必须使用/rewriteurl.php根据请求查找原始 URL。事实上,必须在 PHP 中使用$_SERVER['REQUEST_URI']来获取请求。或者$_SERVER['QUERY_STRING'],如果您将 URI 路径作为规则中的查询传递。 -
@faa,我正在通过 rewriteurl.php(PHP 代码)提供额外的重写规则,而不是尝试重写 /rewriteurl.php url