强行重定向到正确的文件夹

时间:2013-08-21 09:34:00

标签: .htaccess cakephp-2.1

我是htaccess的新手。 一天后,我更新了网址后,我在我的实际网站上更新了一些搜索引擎优化页面。但谷歌已将其编入索引。所以我想如果有人发现旧网址会重定向到新网址但是如果SEO网页只有其他网页没有。这意味着它不会影响任何其他地方。并且没有一页(它是40-50页)任何人都可以通过htaccess或cakephp给出答案。

旧网址 -

www.testenergy.com/test-energy-reviews

新网址 -

www.testenergy.com/s/test-energy-reviews

还有四个senario -

www.testenergy.com/test-energy-reviews

www.testenergy.com/Test-Energy-Reviews

www.testenergy.com/s/test-energy-reviews

www.testenergy.com/s/Test-Energy-Reviews

所有这四个链接都将重定向到www.testenergy.com/s/test-energy-reviews仅限个人网址

3 个答案:

答案 0 :(得分:2)

假设你在某处有mod_rewrite规则,你可能想要坚持使用mod_rewrite。您需要将这些添加到文档根目录中的htaccess文件中,最好是上面其他任何规则:

RewriteEngine On

RewriteRule ^/?test-energy-reviews$ /s/test-energy-reviews [L,NC,R=301]
RewriteRule ^/?s/Test-Energy-Reviews$ /s/test-energy-reviews [L,R=301]

NC标记忽略大小写,因此它涵盖了/test-energy-reviews/Test-Energy-Reviews。第二条规则负责/s/Test-Energy-Reviews

我不确定为什么/s/test-energy-reviews(第3个)是您的一个场景,因为它正是您想要重定向到的场景。

答案 1 :(得分:2)

试试这个!! !!

Router::redirect('/test-energy-reviews', 'http://www.testenergy.energy/s/test-energy-reviews');

答案 2 :(得分:0)

在Controller中写下这一行。

/ <强> * ** * ** * ** 如果网址栏中的大写字母有一种类型,则将小写字母重定向到小写字母 **** /

preg_match('/ [A-Z] + /',$ this-&gt; params-&gt; url,$ upper_case_found);

if(count($ upper_case_found)){

//现在重定向到小写版本的url

 header("HTTP/1.1 301 Moved Permanently"); 
 header("Location: " . ROOTPATH.strtolower($this->params->url) );die(); 
}

/ * *** 结束代码 * * * * ** /

或者在htaccess中编写以下代码: RewriteEngine On

RewriteRule ^ /?test-energy-reviews $ / s / test-energy-reviews [L,NC,R = 301]