mod rewrite、标题别名和htaccess

3
我被聘请为一家自2005年以来运营的网站提供SEO指导,但我的问题是我想使用干净的URL。处理URL的代码藏在某个类文件中,而且有数千行代码需要重写,真是一项艰巨的任务。因此,我考虑为所有产品创建一个slug字段,并将其存储在产品表中。是否可以创建一个类似于.htaccess的中间文件呢?具体步骤如下:
1. /clean-slug-comes-in/
2. .htaccess捕获该请求并使用slug.php查找相应的产品ID。
3. 然后加载product.php?id=(从步骤2中找到的ID)。
4个回答

2

slug.php:

$id="ID.found.from.2";
include 'product.php';

它的工作方式是一个文件完成所有事情。所以显示类别、购物车和产品显示都在一个文件中。这扼杀了它的 SEO 潜力。 - chris
@chris 这正是你所需要的,与SEO无关。他们称之为“路由器”。 - Your Common Sense
这是一个不错的解决方案,但你可能需要重新审查 product.php,因为它现在直接获取 $id 而不是通过 $_GET - Matteo Riva
1
你不能改变一个 $_GET 变量吗?比如说 $_GET['var'] = 5? - chris
好的。确保代码被抽象化,以防止用户可能的篡改。 - chris

0

您可以链接重写规则,但据我所知,在同一请求中执行两个脚本并将第一个的输出用作第二个的参数的方法是不存在的。


0

你可以使用 PHP 脚本作为重写映射(参见 RewriteMap 指令)。但这相当困难。

如果您将 slug 发送到您的 slug.php 脚本,从数据库中获取 ID,将 $_GET['id'] 设置为该值,然后包含 product.php 脚本会更容易。


0

我想到了另一个解决方案:

一切保持不变,但是将slug.php包含在每个模块中,执行将slug转换为id的任务

如果您已经有一些配置文件被包含在每个模块中,那就更好了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接