Php 需要通过mod_rewrite提供SEO友好URL的指导吗

Php 需要通过mod_rewrite提供SEO友好URL的指导吗,php,html,.htaccess,mod-rewrite,seo,Php,Html,.htaccess,Mod Rewrite,Seo,我一直很难让它真正起作用。因此,我使用的是一个CMS,它通过自己的管理工具利用“漂亮的URL”,因此生成的.htaccess文件已经预先提供了重写条件。现在它可以工作了,但它只适用于CMS生成的页面,这些页面是index.php的扩展。因此,例如index.php?id=maps很好地显示为www.siteurl.com/maps/,而不是www.siteurl.com/index.php?id=maps 现在我的问题是,我有大约1900多个由查询字符串生成的产品页面 例如,我的页面URL如下所

我一直很难让它真正起作用。因此,我使用的是一个CMS,它通过自己的管理工具利用“漂亮的URL”,因此生成的
.htaccess
文件已经预先提供了重写条件。现在它可以工作了,但它只适用于CMS生成的页面,这些页面是
index.php
的扩展。因此,例如
index.php?id=maps
很好地显示为
www.siteurl.com/maps/
,而不是
www.siteurl.com/index.php?id=maps

现在我的问题是,我有大约1900多个由查询字符串生成的产品页面

例如,我的页面URL如下所示:

https://www.siteurl.com/item.php?id=0012345&pg=author-title
理想情况下,我希望URL为:

https://www.siteurl.com/0012345/author-title.html
我已经尝试了许多mod_重写生成器来提供正确的语法,但到目前为止没有任何效果

当前在my
.htaccess
文件中是先前存在的语言:

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule /?([A-Za-z0-9_-]+)/?$ index.php?id=$1 [QSA,L]
我把它改成这样:

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule /?([A-Za-z0-9_-]+)/?$ index.php?id=$1 [QSA]
RewriteRule ^([^/]*)/([^/]*)\.html$ /item.php?id=$1&pg=$2 [QSA,L]

但它不起作用。我刚得到一个
404
页面。请告诉我哪里错了。谢谢。

尝试用index.php替换/index.php


与直觉相反的是,在Apache服务器配置中需要前导斜杠,但在htaccess中必须省略它。

我的问题是item.php之后的URL。此页面是为每个产品运行查询的页面。该查询需要从GET获取“id”和“pg”中的数据信息。我只是需要一种方法来清理这些网址。