apache - htaccess 页面到页面重定向和 seo 友好的 url

标签 apache .htaccess url mod-rewrite redirect

我的 htaccess 文件有问题,但我无法弄清楚问题是什么。

该网站已针对 seo 目的进行了网址重写,因此:

www.website.com/page/seo-Friendly-url

被重写为

www.website.com/page.php?seo=seo-friend-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]

这看起来很愚蠢,但我找不到问题:-/

谢谢你的帮助 埃玛


编辑,阿努巴瓦:

嗨, 不,我已经为此设置了重写。 我想要实现的是重定向已经重写的链接。

让我更好地解释一下自己: 目前我有这个网址,它被谷歌(或任何其他搜索引擎)以美化网址(seo 友好)的形式索引。 url 的形式如下:

www.website.com/page/seo-Friendly-url

我已经在 htaccess 中设置了一条规则,因此前面的链接被重写并转到带有用于显示某些内容的查询字符串的 php 页面。 页面和查询的形式如下:

www.website.com/page.php?seo=seo-friend-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

当然,相同的规则适用于这个新网址(www.website.com/page/another-seo-Friendly-url --> 已重写为 --> www.website.com/page.php?seo =另一个-seo-友好-url)

我需要做什么才能正确重写?

谢谢

最佳答案

您需要在现有规则之前添加此额外规则:

RewriteEngine on
RewriteBase /

RewriteCond %{THE_REQUEST} \s/+page\.php\?seo=([^\s&]+) [NC]
RewriteRule ^ /page/%1? [R=301,L]

Rewriterule ^page/([\w-]+)$ page.php?seo=$1 [NC,L,QSA]

关于apache - htaccess 页面到页面重定向和 seo 友好的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22232868/

相关文章:

php - CSS 文件未使用 mod_rewrite 加载

php - 我的 htaccess 文件不断出现 404 错误

eclipse - 如何使用 URL 正确地将图像插入到 BIRT 报告中?

apache - "OR".htaccess mod_rewrite 中的标志

drupal - .htaccess 将基本 URL 重写到上一级目录

css - 在子文件夹中使用 htaccess 从 css 动态加载图像

php - Zend URL 参数 - 隐藏键和显示值

ios - 如何在网址中使用通配符来下载文件名定期更改的文件

apache - 在 apache 中的根路径(XAMPP)

linux - Apache 无法访问主文件夹中的文件