我遇到了一些问题。我搜索了很多,尝试了变体,但仍然无法正常工作。
我的目标就是这样:
重定向:http://site.com/folder1/folder2/ page
to:http://site.com/folder1/folder2/ page
请注意我正在使用"友好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的重写应该解决出现的get变量的问题(根据我阅读的内容)。
问题是,我没有为我的精美URL结构工作。
RewriteRule ^/folder1/folder2/page$ http://site.com/folder1/folder2/Page [R=301,L]
它根本不起作用。重定向未进行,因此这里一定有问题。我尝试了该代码的许多变体。
您不能直接在友好URL上使用重写吗?
(友好的URL表示我从.php扩展程序中脱下)
期待帮助!谢谢!
更新1:
请注意,案例敏感性不是这里的问题。
即使我的示例是: page1 =>第2页
而不是: page => page
问题仍然存在。
更新2:
这是我到目前为止得到的最接近的解决方案(但仍然没有):
Redirect 301 /folder1/folder2/page http://site.com/folder1/folder2/Page?
我添加了一个"?"最后。
这将为我提供登陆网址:http://site.com/folder1/folder2/page?
它删除了变量,但仍然不像我想要的那样友好。
在第二种情况下,如果要在htaccess文件中添加重写规则,则不应将领先的斜杠与。
尝试:
RewriteRule ^folder1/folder2/page$ http://site.com/folder1/folder2/Page [R=301,L]
为什么要问?好问题!
我不能说我对这里的问题完全清楚:您是否试图获得匹配的大写规则或失去任何查询字符串?两者?
如果是大写的,我相信该规则有效(带有校正的错字Rajesh和Hakre Call Out)。是剥夺查询字符串的愿望,尝试添加尾声吗?到您规则的后半部分。看起来像:
RewriteRule ^folder1/folder2/page$ http://site.com/folder1/folder2/Page? [R=301,L]