PHP Mod重写站点地图软件不工作


PHP Mod Rewrite Sitemap Software Not Working

在阅读了一些网站后,我想让我网站上的URL对SEO更友好。基本上,我想要看起来像的旧URL

/showarticle.php?articleid=1
/showstory.php?storyid=1

改为转到以下网址:

/article/1/article-headline
/news/1/news-headline

我通过使用以下mod_rewrite规则来实现这一点:

RewriteEngine On
RewriteBase /
RewriteRule ^article/([0-9]+)/([^/]*)$ /showarticle.php?articleid=$1 [PT] [L]
RewriteRule ^news/([0-9]+)/([^/]*)$ /showstory.php?storyid=$1 [PT] [L]

然而,由于实现了这些站点地图软件和站点似乎无法正常工作。phpsitemapNG只找到一个页面,XML-sitemaps.com找到一些但不是全部。然而,在天平的另一端,GSiteCrawler和AuditMyPC发现,通过用其他东西替换url的标题部分,比如:

/news/1/contact.php
/news/1/virtualnetwork.php
/news/1/compare.php

这些都是我网站上的页面,但不在新闻或文章部分,也没有以他们所获取的形式链接到这些页面。这是与我的重写规则有关,还是只是网站地图生成器通常会做的事情?

注意:OP最初将此添加到他们的问题中。我已将其移至符合网站指南的答案。


只是简单地说一下,这个问题已经解决了。我只需要使用绝对URL来阻止这种情况的发生。

试试这个:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}'.php -f
RewriteRule ^(.*)/?$ $1.php
RewriteRule ^/article/([A-Za-z0-9-]+)/(.*)/?$ showarticle.php?articleid=$1 [NC,L]