我的 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/