2013-08-21 12 views
5

Jestem nowy w htaccess. Zaktualizowałem niektóre strony SEO w mojej witrynie na żywo, po jednym dniu pojawiły się zmiany w Url, więc ponownie zmieniłem adres URL. ale google już to zindeksowało. Więc chcę, żeby ktoś znalazł stary adres URL, przekieruje go do nowego adresu URL, ale w przypadku stron SEO tylko nie dla innych stron. Oznacza to, że nie wpłynie to na inne miejsce. Nie ma jednej strony (jest to 40-50 stron) może ktoś dać odpowiedź przez htaccess lub cakephp.przymusowe przekierowanie do poprawnego folderu

Old URL miejsca

www.testenergy.com/test-energy-reviews 

nowy URL miejsca

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

I są też cztery 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 

Wszystkie te cztery linki przekierowujące do www.testenergy.com/s/test-energy-reviews Url tylko

Odpowiedz

2

Zakładając, że masz gdzieś reguły mod_rewrite, prawdopodobnie chcesz trzymać się mod_rewrite. musisz dodać je do pliku .htaccess w katalogu głównym dokumentu, najlepiej powyżej żadnych innych reguł, które są tam:

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 flag ignoruje sprawę, więc to obejmuje zarówno /test-energy-reviews i /Test-Energy-Reviews. Druga zasada dba o to, aby /s/Test-Energy-Reviews Nie ma pewności, dlaczego /s/test-energy-reviews (trzecia) jest jednym ze scenariuszy, ponieważ jest to dokładnie to, do czego chcesz przekierować.

+0

ale ta przykładowa nazwa pliku jak ta Mam 50 stron dla wszystkich stron, które muszę napisać? – Ayesha

+0

@Ayesha, chyba że istnieje wspólny wzór na wszystkich stronach, które można zawrzeć w wyrażeniu regularnym, będziesz musiał utworzyć reguły dla wszystkich swoich stron. –

+0

Drugi przypadek nie działa. Czy możesz pomóc innym rozwiązaniom? – Ayesha

2

Spróbuj tego .. !!

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

Ten nie ignoruje wielkich liter, czy możesz podać rozwiązanie wielkimi i małymi literami? – Ayesha

0

wpisz tę linię w kontrolerze.

/* ** * ** * ** przekierowanie fo małej litery jeśli ktoś pisać wielkimi literami w pasku adresu ****/

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

if (count ($ upper_case_found)) {

// Teraz przekierowanie do wersji pisanej małymi literami url

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

/* *** Kod Koniec* ** * **/

LUB w htaccess wpisz następujący kod: RewriteEngine On

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