5

我是 htaccess 的新手。一天后,我更新了我的实时站点中的一些 SEO 页面,一些 Url 发生了变化,所以我再次更改了 url。但谷歌已经将其编入索引。所以我想如果有人找到旧网址,它将重定向到新网址但在 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仅重定向到 Url

4

3 回答 3

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(第三个)是你的场景之一,因为它正是你想要重定向到的。

于 2013-08-21T09:43:38.307 回答
2

试试这个 ..!!

Router::redirect('/test-energy-reviews', 'http://www.testenergy.energy/s/test-energy-reviews');
于 2013-08-21T10:49:05.810 回答
0

在Controller中写下这一行。

/ * ** * ** * **如果 url 栏中某些类型为大写,则重定向小写字母的 Url ****/

preg_match('/[AZ]+/',$this->params->url, $upper_case_found);

如果(计数($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]

于 2013-08-28T10:59:48.257 回答