【问题标题】:URL rewriting with PHP MySQL .htaccess & GET使用 PHP MySQL .htaccess & GET 重写 URL
【发布时间】:2011-05-07 14:13:58
【问题描述】:

我有一个包含 5000 个项目的 MySQL 数据库。该表的结构为

身份证
产品名称
内容
产品网址

您可以通过访问 www.site.com/products/index.php?id=123 访问特定产品页面。 index.php 文件使用 PHP 获取 ID 以搜索 MySQL 数据库并返回相应的产品名称和内容。

我怎样才能做到这一点,而不是 www.site.com/products/index.php?id=123,URL 被重写或重定向到 www.site.com/products/product-url?如果我使用 .htaccess 执行此操作,如果 ID 不在 URL 中,index.php 文件是否仍然能够知道用于查找产品 URL 的 ID?或者有什么方法可以用 PHP 和 MySQL 映射 URL?

(在这方面我是个菜鸟,所以任何帮助将不胜感激。谢谢。)

【问题讨论】:

    标签: php .htaccess mod-rewrite url-rewriting seo


    【解决方案1】:

    您可以使用 .htaccess 和 RewriteRule。以下将使用$_GET['product-url'] 将 SEO URL 重定向到 index.php。您需要修改代码以查找产品id 或直接使用product-url。两者应该在您的产品表中是唯一的。

    RewriteEngine On
    RewriteBase /
    
    # redirect product page from SEO URL
    RewriteRule ^products/([\w\d-_]+)/?$ products/index.php?product-url=$1 [L]
    

    注意:我将product_url 设置为只允许使用字母、数字、破折号和下划线。我建议这样的限制。此外,尾部斜杠是可选的。此外,这不会重新附加查询字符串。如果需要,可以将 QSA 标志添加到 RewriteRule。

    【讨论】:

    • 我在 product-url 中添加了关于句点的评论,但我只是删除了 .php 扩展名,现在它就像一个魅力!非常感谢。
    • 我没有看到你的评论。您想要产品网址中的句点吗?我建议不要这样做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-15
    • 2016-01-10
    相关资源
    最近更新 更多