0

我遇到了一些问题。我搜索了很多,尝试了变化,但仍然无法正常工作。

我的目标很简单:

重定向: http ://site.com/folder1/folder2/页面

至: http ://site.com/folder1/folder2/

请注意,我使用的是“友好 URL”。

现在这是我尝试过的方法,以及我遇到的问题。

1)重定向301

Redirect 301 /folder1/folder2/page http://site.com/folder1/folder2/Page

此重定向有效,问题是,我从“页面”获取变量出现在 URL 的末尾,这对 SEO 不利:

http://site.com/folder1/folder2/Page?get=page

2)重写规则

mod_rewrite 的 RewriteRule 应该解决 Get Variables 出现的问题(根据我的阅读)。

问题是,我无法让它适用于我的 Fancy URL 结构。

RewriteRule ^/folder1/folder2/page$ http://site.com/folder1/folder2/Page [R=301,L]

它根本行不通。没有执行重定向,所以这里一定有问题。我尝试了该代码的许多变体。

你不能直接在友好的 URL 上使用 RewriteRule 吗?

(友好的 URL 意味着我去掉了 .php 扩展名)

期待一些帮助!谢谢!


更新1:

请注意,区分大小写不是这里的问题。

即使我的例子是:Page1 => Page 2

而不是:页面=>页面

问题仍然存在。


更新 2:

这是迄今为止我得到的最接近的解决方案(但还没有):

Redirect 301 /folder1/folder2/page http://site.com/folder1/folder2/Page?

我加了一个“?” 在最后。

这将为我提供以下网址: http://site.com/folder1/folder2/Page

它删除了获取变量,但仍然不像我想要的那样对 SEO 友好。

4

2 回答 2

0

我不能说我对这里的问题完全清楚:你是想让大写规则匹配还是丢失任何查询字符串?两个都?

如果是大写,我相信该规则有效(使用更正的错字 Rajesh 和 hakre 呼叫)已删除。是否希望剥离查询字符串尝试添加尾随?到你统治的后半部分。它看起来像:

RewriteRule ^folder1/folder2/page$ http://site.com/folder1/folder2/Page? [R=301,L]
于 2012-11-07T18:53:57.320 回答
0

在第二种情况下,如果您在 htaccess 文件中添加重写规则,则不应匹配前导斜杠。

尝试:

RewriteRule ^folder1/folder2/page$ http://site.com/folder1/folder2/Page [R=301,L]

你为什么问?好问题!

于 2012-11-07T18:28:20.093 回答