【问题标题】:PHP auto create seo friendly urlPHP 自动创建 seo 友好的 url
【发布时间】:2015-07-09 09:13:47
【问题描述】:

我有 PHP url 用于显示每个页面的内容,例如:

类别:

articles
gallery
page
books
....

网址:

http://localhost/cms/load.php?page=articles&id=1&title=this-is-a-title.html&lang=ru
http://localhost/cms/load.php?page=page&id=10&title=this-is-a-page-title.html&lang=ru

在行动中,我需要像这样自动将 url 重写为 seo 友好的 url:

http://localhost/cms/ru/articles/1/this-is-a-title.html
http://localhost/cms/ru/page/10/this-is-a-page-title.html

加载.php

$page = isset($_GET['page']) ? safeGET($_GET['page']) : null;
$id   = isset($_GET['id'])   ? safeGET($_GET['id'])   : null;
if ($page=='articles') { include 'article.php'; } elseif { ... }

我怎样才能用PHP 生成这个URL(没有mod-rewrite 的偏好)?!或.htaccess and PHP?

【问题讨论】:

    标签: php .htaccess url mod-rewrite


    【解决方案1】:

    您可以通过以下方式实现:

    .htaccess

    RewriteEngine on
    RewriteBase /cms/
    RewriteRule ^([a-z,A-Z]+)/([a-z,A-Z]+)/([0-9]+)/([a-z,A-Z,0-9]+)$ ./load.php?page=$2&id=$3&title=$4&lang=$1 [L,NC]
    

    这样您的 load.php 文件不需要更改并且可以接受 seo url。

    您将需要更改创建您的 URL 的代码,如果您更新您的答案,您的 URL 当前是如何生成的,我们也可以帮助您。

    【讨论】:

    • cms 是 localhost xammp 中的子文件夹,如果 cms 安装在子文件夹中,您需要更改 RewriteBase /cms/ru 语言需要显示在根目录之后。这不完美
    • 当我从 load.php 中重定向时,生成的 URL 不再漂亮 - Apache 处理重定向到 load.php 但从那里转发重定向仍然有一个脏 url,因为它是从在 php 脚本中,因此生成的页面仍然是浏览器 url 栏中的page.php?id=1234。我该如何解决?
    【解决方案2】:

    省点麻烦,使用路由框架(即http://www.slimframework.com/

    虽然创建 seo friendly urls(也称为 slugs)不包括在内

    【讨论】:

      【解决方案3】:

      我建议使用路由类。您将添加一个将所有内容重写为 index.php 文件的 htaccess 文件,然后您将控制 PHP 中的所有路由。

      AltoRouter 是我最喜欢的一个https://github.com/dannyvankooten/AltoRouter。它的灵感来自 Ruby 的 Sinatra,但如果您在 Google 上搜索“PHP 路由类”,您可以找到更多类似的类用于路由您的 url。

      【讨论】:

      • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。
      • 不明白你为什么要发出我的答案。这里的其他答案(包括链接)也没有这样做。我的答案不仅仅是链接,我刚刚提到使用路由类。如果您使用 Google PHP 路由类,您会发现很多。它们通常都以相同的方式工作,我只是提到了我目前使用的最喜欢的一个。
      【解决方案4】:

      在这里,您可以找到两个有用的指南,用于了解 .htacces 的工作原理。有很多很好的例子,希望对你有帮助:

      第一指南: http://code.tutsplus.com/tutorials/the-ultimate-guide-to-htaccess-files--net-4757

      第二指南: https://www.branded3.com/blog/htaccess-mod_rewrite-ultimate-guide/

      【讨论】:

        猜你喜欢
        • 2013-02-19
        • 1970-01-01
        • 2016-04-13
        • 2015-07-07
        • 2013-06-19
        • 2011-05-09
        • 2018-05-22
        • 2014-12-04
        • 2011-06-11
        相关资源
        最近更新 更多