-1

我正在寻找一个简单的解决方案来重写 PHP 中的 URL。客户希望将它们存储在数据库中,因此我无法使用 mod_rewrite。

基本上我正在寻找一个 PHP 解决方案来实现这一点:

^/(.*).html ==> /page.$1.html

这样的PHP代码存在吗?先感谢您。

4

1 回答 1

0

我不完全确定您的示例是什么意思,因为它本质上会创建一个永无止境的重定向循环。

^/(.*).html ==> /page.$1.html ==> /page.page.$1.html ==> /page.page.page.$1.html ==> etc.

我假设既然你说你从数据库中获取这些规则,你想要获取特定的字符串而不是(.*)

您想要做的是将您尝试搜索的任何内容与$_SERVER['REQUEST_URI']变量匹配,然后使用 PHP 进行重定向。像这样的东西:

foreach ($searches as $string) {
    if (preg_match("@^/$string\.html$@", $_SERVER['REQUEST_URI'])) {
        header("HTTP/1.1 301 Moved Permanently");
        header("Location: http://www.yoursite.com/page.$string.html");
    }
}
于 2013-05-02T19:11:56.723 回答