.htaccess SEO动态网址无效

时间:2018-06-05 11:24:02

标签: php .htaccess seo

我有一个页面,其中包含一个查询字符串的链接,该字符串会加载另一个包含查询结果的页面。

a href="news-detail.php?nrf=<?php echo $ntitle; ?>"><?php echo "<img src=newsimgs/thumbs/".$nphoto1.">" ?></a>

现在,当加载新详细信息页面时,我会将网址设为

https://www.xyzee.org/news-detail.php?nrf=Testing

但我希望它加载为

https://www.xyzee.org/news-detail/Testing

我已经在网上查找了关于mod_rewrite的教程,并尝试了不同的样本,但由于我理解的原因,我无法让它工作。 我试过的示例代码之一是

<IfModule mod_rewrite.c>

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^news-detail/([A-Za-z0-9-]+) news-detail.php?nrf=$1 [NC]

</IfModule>

当我点击加载详细信息页面的链接时,这应该有效,但不是。该页面仍会加载 https://www.xyzee.org/news-detail.php?nrf=Testing

链接

当我直接在浏览器中输入https://www.xyzee.org/news-detail/Testing时,页面实际加载但是到css,js,images等的链接都被破坏了。 我已经尝试了很多方法来解决这个问题,但似乎无法找到解决方案。 是查询字符串的链接是问题还是别的,我只是不知道。 任何帮助将非常感激。提前谢谢。

1 个答案:

答案 0 :(得分:1)

使用mod_rewrite不会替换文档中的链接。您必须在自己的代码中执行此操作:

<a href="news-detail/<?php echo $ntitle; ?>"><?php echo "<img src=newsimgs/thumbs/".$nphoto1.">" ?></a>

之后,您还必须更新外部资源的路径,因为被调用页面现在位于子目录中。因此,您可以将../附加到详细信息页面内所有包含的客户端资源。

为了防止这种情况,更好的方法是使用绝对路径或将<base />添加到页面的标题中。