【问题标题】:Is wordpress SEO friendly url works without using htaccess?wordpress SEO 友好的 url 是否可以在不使用 htaccess 的情况下工作?
【发布时间】:2011-05-16 15:48:41
【问题描述】:

Wordpress 使用友好的 seo url 而不使用 htaccess。

谁能给我解释一下,请他们是怎么做的。

我能想到的唯一方法就是做这样的事情。

domain.com/index.php/nnn/mmmm/

但是wordpress不使用index.php

我知道他们没有使用 htaccess。

请告诉我。

谢谢。

【问题讨论】:

  • 是的,Wordpress 使用 .htaccess 文件。

标签: php mysql wordpress .htaccess mod-rewrite


【解决方案1】:

Wordpress 确实使用 .htaccess 文件。您可以在您的 wordpress 网站的永久链接部分修改永久链接。你可以看到它的信息here

如果你使用的是 IIS,你可以使用this 方法

【讨论】:

    【解决方案2】:

    WordPress 实际上有一个 .htaccess 文件,他们不需要更改它会将 all 请求重定向到 index.php

    index.php 然后查看永久链接规则并运行一些数据库查询以确定向您发送哪个页面。

    因此,例如,如果永久链接规则是 %postdate%/%postname%(可能不是实际的 WordPress 永久链接变量。我使用 WordPress 的时间不长)那么它只会使用正则表达式(或 substr()strpos()) 将 %postdate%%postname% 放入变量中。接下来,它对匹配该日期和该名称的任何项目运行一个简单的数据库查询。如果没有找到,重定向到搜索。如果您发现不止一个,请将它们全部列出(如类别页面)。如果您发现只有一个,请发送该页面。

    就实际“发送”页面而言,这只是设置某些变量(例如$the_post['content'])然后include()'ing 正确的主题文件的问题。

    include()'ing 主题文件是一个简单的if() 语句。

    if(file_exists("wp-content/themes/<your_theme>/$the_post['type'].php")){
        include("wp-content/themes/<your_theme>/$the_post['type'].php");
    } else {
        include("wp-content/themes/<your_theme>/index.php");
    }
    

    请注意,这些不是确切的变量名称或它们出现的确切功能。这只是一个非常简化的版本,可以大致了解这些系统的工作原理。

    【讨论】:

    • 你能告诉我.htaccess 文件的基础在哪里,因为我似乎找不到它。我有显示所有隐藏文件和系统文件的复选框,但我仍然看不到它。
    • wordpress 在哪里查看这是类别、帖子还是页面。
    • 例如在 index.php 页面上,人们通常使用他们传递变量的开关,如果它匹配大小写,则显示该页面。 wordpress 在哪里做这个
    • 您的 Web 服务器运行的是什么操作系统?如果您正在运行任何基于 *nix 的系统,您必须使用 ls -a 来查看 .htaccess 文件,该文件将位于 WordPress 根目录中。如果您运行的是 Windows,如果您没有隐藏文件扩展名,它应该始终可见。不过,我不知道如果你隐藏文件扩展名会发生什么。
    • 我的 PC 上似乎找不到它,但我的 ftp 上找到了。
    【解决方案3】:

    Wordpress 确实使用 .htaccess。确保显示隐藏文件!如果您使用 FTP,您的客户端中会有一个设置。

    【讨论】:

      【解决方案4】:

      回答主要问题:

      没有。

      至于你的其他观点:

      Wordpress 使用友好的 seo url 而不使用 htaccess。

      通常不会。
      通常它需要 .htaccess 才能使漂亮的 url 工作。
      但是,正如 Wordpress 的 Codex 所说:

      如果您使用的是 IIS 7 并且在您的服务器上拥有管理员权限,您可以 请改用 Microsoft's URL Rewrite Module。虽然不是 与 mod_rewrite 完全兼容,确实支持 WordPress 的 漂亮的固定链接。

      所以他们总是在使用某种重写模块

      谁能给我解释一下他们是怎么做的。


      一件有趣的事情需要解释:

      • 只有一个 .htaccess 文件。
      • 如果它包含某种通用规则重写 url 到 some.php 的 GET 参数 (domain.com/verynice => domain.com/index.php?page=verynice)。
      • 但是没有发生这种情况

      正在发生的事情是
      rewrites 任何不是 index.php 的特定文件或目录的 URL,除了 index.php(以防止无限循环)。

      所以像domain.com/blah/blahdomain.com/lol/trololo 这样的网址实际上都在请求index.php - 唯一的区别在于请求的URI

      使用 superglobal variables$_SERVER['REQUEST_URI'] 他们获取请求的 URI,然后他们解析请求的 URI存储相应的结果在变量中

      我能想到的唯一方法就是做这样的事情。

      domain.com/index.php/nnn/mmmm/

      common 的 URL 解释中,这不是对 index.php 文件本身的请求。
      这是对文件夹“nnn”中的“mmmm”文件夹的请求,该文件夹位于“index.php”文件夹中。

      然而 apache通常将此理解为对index.php文件的请求

      对于其他文件,例如my.file domain.com/my.file 是文件请求,domain.com/my.file/ 是文件夹请求(注意末尾的斜线 /

      但是wordpress不使用index.php

      那是不正确

      特别是如果你使用 nice-urls,index.php 是 Wordpress 的实用基础

      我知道他们没有使用 htaccess。

      你的这一点可能意味着 3 件事:

      1. 他们正在使用 htaccess,但不用于处理 URL(我已经在上面解释过)
      2. 他们根本没有使用它——不是真的,除非他们会使用MS' URL Rewrite Module
      3. 你不知道。你没有提供任何关于你是如何发现他们没有使用它的信息,所以我们不知道你是真的知道还是你只是认为:)

      请告诉我。

      我让你知道。我希望我已经回答了你所有的问题:),如果没有 - 使用 cmets :)

      谢谢。

      不客气。

      我很乐意帮忙 :) ☺ ☺ ☺ ☺ ☺

      【讨论】:

        猜你喜欢
        • 2014-05-11
        • 1970-01-01
        • 2014-01-25
        • 2014-08-23
        • 2021-07-23
        • 1970-01-01
        • 2011-05-29
        • 2013-01-22
        • 1970-01-01
        相关资源
        最近更新 更多