【问题标题】:htaccess issue with seo friendly urls - GoDaddyseo 友好网址的 htaccess 问题 - GoDaddy
【发布时间】:2013-03-20 09:47:16
【问题描述】:

好的,我正在寻找使用 mod rewrite 为我的网站编写 seo 友好的 url。它在我的 xampp 本地测试服务器上运行良好。但是,我在尝试将其上线时遇到了问题,它似乎根本不起作用。

这是我在 htaccess 文件中写的内容:

RewriteEngine On
RewriteRule ^category/([a-zA-Z0-9]+)$ category.php?location=$1

所以想法是将mysite.com/category.php?location=london改为mysite.com/category/london

最初我认为在 GoDaddy 端打开 mod 重写功能可能是个问题,所以我联系了 GoDaddy 看看是否是这种情况,他们的回答是:“Mod_rewrite 是一个 Apache Web 服务器模块默认情况下安装在我们所有的 Linux 服务器上;不必安装或启用它。我们的 Linux 主机帐户支持大多数 mod_rewrite 功能。因为启用 mod_rewrite 是在全局级别处理的,所以您不需要在 httpd 中启用它。 conf 文件。您只需将所需的代码添加到 .htaccess 文件的正文中。”

他们基本上暗示错误不在于他们和我的代码。我对 mod 重写不是很有经验,当我在其他服务器上这样写它时,它似乎工作正常。你有什么特别的东西要和godaddy一起写吗?我错过了什么吗?谢谢!

【问题讨论】:

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


    【解决方案1】:

    这些都在您的 htaccess 文件中吗?访问所需的 URL 时遇到什么错误,是 500 Internal Server 错误吗?

    我通常默认添加的是一个 If 语句:

    <IfModule mod_rewrite.c>
      RewriteEngine on
      RewriteBase /
    
      RewriteRule ^category/([a-zA-Z0-9_-]+)$ category.php?location=$1 [L]
    </IfModule>
    

    顺便说一下,请注意规则中字符集末尾的_-,例如纽约有一个SEF 版本是new-yorkcategory/new-york 将在您的RewriteRule 中失败。

    【讨论】:

    • 是的,这就是我的 htaccess 文件中的全部内容。我得到一个 404 not found 页面。我尝试了您的代码,但没有成功。我仍然找不到 404。 :(
    • 您确定 category.php 与 htaccess 位于同一目录中吗? 404 文件未找到不是 htaccess 错误..
    • 是的,它在同一个目录中。它出现一个白屏:“未找到请求的 URL /category/london 在此服务器上未找到。此外,在尝试使用 ErrorDocument 处理请求时遇到 404 Not Found 错误。”
    • 嗯,好的。它只是绕过你的重写规则,因为错误表明它正在寻找目录 category/london.. 奇怪。
    • 顺便说一句,我终于让它工作了。我只需要在 RewriteEngine 打开之前添加Options -MultiViews。同样感谢您的帮助!
    猜你喜欢
    • 2016-03-11
    • 2017-05-14
    • 2014-07-26
    • 2010-10-24
    • 2016-02-02
    • 2011-07-23
    • 2011-04-06
    • 2014-01-14
    • 2017-04-26
    相关资源
    最近更新 更多