【问题标题】:Using mod_rewrite to make Blog URLs more SEO Friendly使用 mod_rewrite 使博客 URL 更加 SEO 友好
【发布时间】:2013-09-17 10:39:59
【问题描述】:

我正在尝试使用 mod_rewrite 将我的博客 URL 转换为对 SEO 更友好的格式。我所有的文章都存储在一个简单的 MySQL 数据库中。每篇博客文章的网址如下所示:

http://www.test.com/blog?id=20&category=online%20php%20tutorials&pagename=how%20to%20customize%20functions

我已经设法使用 mod_rewrite 使它们看起来像这样:

http://www.test.com/blog/online-php-tutorials/how-to-customize-functions/20

这是我在 .htaccess 文件中调整的代码:

RewriteRule ^blog/([a-z0-9\-]+)/([a-z0-9\-]+)/([a-z0-9\-]+)/?$ /blog?id=$3&category=$1&pagename=$2 [L]

所以会发生这样的情况:当我单击 URL http://www.test.com/blog/online-php-tutorials/how-to-customize-functions/20 时,我的所有 CSS 和图像都没有加载,因为它试图从一个实际不存在的目录中加载它们。如何加载文件而无需创建包含我的网站 CSS 文件和图像的多个目录?

【问题讨论】:

  • 对你的 CSS 和 JS 使用绝对引用,它会相对于网站的根目录加载它们。

标签: php mysql apache .htaccess mod-rewrite


【解决方案1】:

在您的路径中使用根标识符/。这将指向您服务器的 DocumentRoot。让我解释一下这是如何工作的

对于这样的图像:

<img src='test.jpg' /> 

浏览器/服务器会发现它为http://www.test.com/blog/online-php-tutorials/how-to-customize-functions/20/test.jpg',但如果您在路径前使用/

<img src='/test.jpg' />

它会在http://www.test.com/test.jpg中寻找它

另一种技术

在您的文件中使用完整路径,例如:

<img src='http://test.com/test.jpg' />

【讨论】:

  • @three3,很高兴我能帮上忙。
【解决方案2】:

您会希望您的 CSS 路径基于您的域的根目录。如果您的 CSS 文件位于 http://example.com/includes/style.css,则应使用 /includes/style.css 而不是 includes/style.css 来包含该文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-14
    • 2010-12-03
    • 2019-05-29
    相关资源
    最近更新 更多