PHP Mod Rewrite Sitemap Программное обеспечение не работает - PullRequest
2 голосов
/ 19 января 2012

Я хотел сделать URL-адреса на своем сайте более дружественными к SEO после прочтения нескольких сайтов об этом. В основном я хотел старые URL, которые выглядели как

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

вместо этого перейти на эти URL:

/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 находит только 1 страницу, а XML-sitemaps.com находит некоторые, но не все. На другом конце шкалы GSiteCrawler и AuditMyPC находят больше, чем есть, заменяя заголовочную часть URL-адреса другими вещами, такими как:

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

Это все страницы на моем сайте, но не в разделе новостей или статей, и нет ссылок на эти страницы в той форме, в которой они их поднимают. Это как-то связано с моим правилом перезаписи или с тем, что вообще делают генераторы карт сайта?

Ответы [ 2 ]

0 голосов
/ 10 апреля 2019

ПРИМЕЧАНИЕ: ОП первоначально добавил это к своему вопросу. Я переместил его в ответ, чтобы он соответствовал правилам сайта.


Просто короткое замечание, чтобы сказать, что эта проблема была решена. Мне просто нужно было использовать абсолютные URL, чтобы этого не случилось.

0 голосов
/ 24 января 2012

Попробуйте это:

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]
...