【问题标题】:Dynamic URLs + SEO动态网址 + SEO
【发布时间】:2012-04-17 13:47:42
【问题描述】:

我有一个网站可以为所有内容生成动态 url。

它使用一个函数来显示index.php页面上的内容,它被“action”调用。

因此,如果用户想要注册,则有一个 signup 函数调用它。 如果用户想浏览downloads页面,有一个downloads函数调用它。

类似这样的:

index.php?action=signup
index.php?action=downloads
index.php?action=news&type=type&id=id

在最后一种情况下是新闻。 新闻按 typeID(均为数字)划分。

类型可以是:文章、更新等

我的问题是:我必须如何以及做什么才能在友好的 URL 上进行全部转换?

【问题讨论】:

    标签: seo search-engine friendly-url dynamic-url


    【解决方案1】:

    假设您在 apache 服务器上,您将需要使用 .htaccess 文件,以及使用规则重写 URL 的方法,这并不奇怪称为 RewriteRule。

    如果您搜索 .htaccess RewriteRule,可以通过 google 获得大量信息,但一个很好的起点是 http://corz.org/serv/tricks/htaccess2.php

    你最终会在你的公共网络文件夹中放置一个名为 .htaccess 的文件,如下所示:

    Options +FollowSymlinks
    RewriteEngine on
    RewriteRule ^(?:/(.*)){1,3} index.php?action=$1&type=$2&id=$3 [R,NC]
    

    注意:我没有测试过上述内容,它会根据您希望漂亮链接的外观而有所不同。

    【讨论】:

    • 嗯...感谢您的回答,但这并不是我所需要的。通过一些重写规则,我可以使“/register”可用,但这还不够,因为我需要手动更新链接。也许你可以帮助我找出我真正需要的东西。问题当前网址:url.com/index.php?action=signup 所需网址:url.com/register 如何让我的网站显示“/register”作为链接,而不仅仅是作为可能的路径?我的意思是,当我的网站生成动态链接时,它不遵守 SEO 规则。如何让它尊重SEO?如何让它生成“/register”而不是“/index.php?action=signup”?
    • 我认为确实如此 - 但您需要添加额外内容,例如 301 重定向。您需要的所有信息都在我发布的页面中,但它会类似于:[R,301] 在您的规则末尾,因此只能从该位置访问,以避免重复。
    • 谢谢。我现在可以理解我需要什么,所以现在我只需要实现。帮我写两条重写规则:第一 - url.com/index.php?action=signup (url.com/register) 第二 - url.com/index.php?action=news&id=$ id&title=$title (url.com/news/$id/title-of-the-notice-with-hifens) Hifens 是来自 PHP 函数还是重写规则?放置这些目录后如何解决CSS问题?每条规则如何?
    • 文档确实解释了这一点,其余的超出了原始问题的范围,但这里有一些东西可以让你开始:RewriteRule ^register$ index.php?action=register RewriteRule ^news/ (\d+)/([a-zA-Z0-9-]+)$ index.php?action=news&id=$1&title=$2 注意:如果你有一个斜杠,这将不起作用- 你可以在这里弄清楚你想要做什么(或者添加一个可选的 /? 或者只是创建另一个规则来不允许它们,例如)在你的 CSS 中,你只需要更改路径以反映浏览器现在将要做什么看。使用绝对路径,以 / 开头
    • 感谢您的关注和支持。每一个小错误都被解决了(CSS、连字符、重写规则),你对此感到内疚;)。谢谢。
    猜你喜欢
    • 2020-05-09
    • 2011-06-26
    • 2013-06-24
    • 2018-11-14
    • 2014-04-02
    • 1970-01-01
    • 2015-11-19
    • 1970-01-01
    相关资源
    最近更新 更多