首页 > 解决方案 > 如何将包含静态和动态变量的 URL 重定向到动态 URL

问题描述

我想将旧动态 URL 更改为新动态 URL 作为永久 URL。url 是关于新闻的,所以我使用 .htaccess 创建了友好的 url

  1. 我的旧网址是:
http://example.com/article_text1-text2-text3.html

“article_”是静态变量,“text1-text2-text3”是包含新闻标题的动态 URL。

  1. 我想更改为新的 URL,例如:
http://example.com/text1-text2-text3.html

所以我想删除“article_”变量,因为这不是 SEO 友好的 URL。

我的旧 .htaccess 规则:

    重写引擎开启
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l
    RewriteRule ^article_([a-zA-Z0-9_-]+)(\.html)?$ detail.php

现在我更改为我的新 .htaccess 规则:

    重写引擎开启
    RewriteBase /
    重定向 301 /^article_([a-zA-Z0-9_-]+)(\.html) /^([a-zA-Z0-9_-]+)(\.html)
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l
    重写规则 ^([a-zA-Z0-9_-]+)(\.html)?$ detail.php

但问题是搜索引擎已经抓取了 URL 包含“article_”的页面,所以我添加了从旧 URL 到新 URL 的重定向 301 代码,但没有工作。

从上述情况来看,如何在 .htaccess 文件中从旧 URL 永久重定向到新 URL?

感谢任何希望帮助我解决这个问题的人。

标签: .htaccessmod-rewrite

解决方案


推荐阅读