【问题标题】:Need guidance with SEO friendly URLS via mod_rewrite需要通过 mod_rewrite 获得 SEO 友好 URL 的指导
【发布时间】:2012-03-29 03:55:01
【问题描述】:

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

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

例如,我的页面网址如下所示:

https://www.siteurl.com/item.php?id=0012345&pg=author-title

理想情况下,我希望网址是:

https://www.siteurl.com/0012345/author-title.html

我尝试了许多 mod_rewrite 生成器来为我提供正确的语法,但到目前为止没有任何效果。

目前在我的.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 页面。请告诉我哪里错了。谢谢。

【问题讨论】:

    标签: php html .htaccess mod-rewrite seo


    【解决方案1】:

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

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

    【讨论】:

    • 我的问题在于 item.php 之后的 URL。此页面用于运行每个产品的查询。该查询需要来自 GET 的信息以获取“id”和“pg”中的数据。我只需要一种方法来清理这些 URL。
    猜你喜欢
    • 2023-03-12
    • 1970-01-01
    • 2016-07-04
    • 2010-12-31
    • 1970-01-01
    • 1970-01-01
    • 2020-05-06
    • 2011-06-11
    • 1970-01-01
    相关资源
    最近更新 更多