【发布时间】:2014-04-09 14:00:35
【问题描述】:
我的 htaccess 文件有问题,我不知道是什么问题。
该网站已针对 seo 目的进行 url 重写,因此:
www.website.com/page/seo-friendly-url
被改写为
www.website.com/page.php?seo=seo-friendly-url
这是通过以下方式完成的
RewriteEngine on
RewriteBase /
Rewriterule ^page/([a-zA-Z0-9_-]+)$ page.php?seo=$1 [NC,L]
现在的问题是我必须将一些已经被搜索引擎索引的页面重定向到他们的新目的地,因为它们不再可用,例如:
www.website.com/page/seo-friendly-url
必须重定向到
www.website.com/page/another-seo-friendly-url
我尝试过类似的方法,但它不起作用
Rewriterule ^page/seo-friendly-url$ page/another-seo-friendly-url [R,NC,L]
这个也不行
Rewriterule ^page/seo-friendly-url$ page.php?seo=another-seo-friendly-url [R,NC,L]
这似乎很愚蠢,但我找不到问题:-/
感谢您的帮助 埃玛
编辑,对于anubhava:
嗨, 不,我已经为此设置了重写。 我想要实现的是重定向一个已经重写的链接。
让我更好地解释一下自己: 目前我有这个被谷歌(或任何其他搜索引擎)以美化 url(seo 友好)的形式索引的 url。网址有这种形式:
www.website.com/page/seo-friendly-url
我已经在 htaccess 中设置了一个规则,所以之前的链接被重写并转到一个带有用于显示某些内容的查询字符串的 php 页面。 页面和查询是这样的形式:
www.website.com/page.php?seo=seo-friendly-url
所以基本上我使用第一个 url 的最后一部分作为第二个 url 的查询参数。
这是通过以下代码实现(并且有效)的:
RewriteEngine on
RewriteBase /
Rewriterule ^page/([a-zA-Z0-9_-]+)$ page.php?seo=$1 [NC,L]
到目前为止一切顺利。
现在我需要实现的是重定向这个已经被删除的url:
www.website.com/page/seo-friendly-url
进入新页面
www.website.com/page/another-seo-friendly-url
当然,同样的规则适用于这个新的 url (www.website.com/page/another-seo-friendly-url --> 已经改写为 --> www.website.com/page.php?seo =另一个-seo-friendly-url)
我需要做什么才能正确地重写?
谢谢
【问题讨论】:
标签: apache .htaccess url mod-rewrite redirect