.htaccess - 如何将包含静态和动态变量的 URL 重定向到动态 URL
问题描述
我想将旧动态 URL 更改为新动态 URL 作为永久 URL。url 是关于新闻的,所以我使用 .htaccess 创建了友好的 url
- 我的旧网址是:
http://example.com/article_text1-text2-text3.html
“article_”是静态变量,“text1-text2-text3”是包含新闻标题的动态 URL。
- 我想更改为新的 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?
感谢任何希望帮助我解决这个问题的人。
解决方案
推荐阅读
- javascript - this.functionName 的工作方式因事件侦听器而异
- spring - Redis/Jedis 服务不正常
- android - Observable 返回相同值的列表
- regex - 用前导符号弯曲数字,但不要吃加法/减法
- java - Vector2 类的旋转问题
- docker - 删除现有的 docker 容器/图像 GitLab CI
- google-sheets - 仅当与 Dropbox 中的特定字符串匹配时才对特定单元格求和
- php - Windows server 2008 SMTP 连接成功但邮件不发送
- python - Keras 不接受目标标签,因为它的形状?
- java - web3J 与 infura 的兼容性