.htaccess przekierowanie starych adresów na nowe


(Asd1336) #1

Witam, starałem się zmienić adresy moich includowanych stron z http://www.domena.pl/index.php?go=start na przyjazne adresy http://www.domena.pl/start.html. Wszystko ładnie pięknie, tylko przy pozycjonowaniu jest problem, ponieważ potworzyły mi się podwójne adresy o tej samej treści. Moje pytanie jest następujące. Jak w .htaccess zrobić przekierowanie ze starych adresów na nowe? Poniżej przedstawiam to co mam do tej pory w .htaccess:

Options FollowSymLinks

RewriteEngine On

RewriteRule ^([a-zA-Z0-9_-]+)/?.html$ /index.php?go=$1 [L]

(Drobok) #2
RewriteRule ^([^/]*)\.html$ /index.php?go=$1 [L]

Może takie coś ??


(Asd1336) #3

Nie wiem czy zadziała to co dałeś. Chodzi mi o to, że jak się wejdzie przez link http://www.domena.pl/index.php?go=start to przekieruje na http://www.domena.pl/start.html nie wiem jakim Rule to uzyskać, a nie chcę, żeby do jednej podstrony były dwa adresy (tj. przez http://www.domena.pl/index.php?go=start i http://www.domena.pl/start.html, chodzi o to, żeby wyświetlał się tylko ten drugi adres.)


(Saver) #4
RewriteRule ^start.html$ index.php?go=start

(Asd1336) #5

po wpisaniu

RewriteRule ^start.html$ index.php?go=start

wpisuje nadal adres www.domena.pl/index.php?go=start i nadal zostaje ten adres :confused:


(Drobok) #6

Mod rewrite służy do przekierowań bez zmiany url. Usunięcie starych linków jest niemożliwe, bowiem muszą one być by na coś przekierowywać. Możesz zmienić je w php (zwykłe przekierowanie).


(Asd1336) #7

To jeżeli mogę jeszcze prosić o pomoc w sensie, wyjaśnienie mi o co chodziło w mailu. Wcześniej strona miała adresy www.domena.pl/index.php?go=start itd. lecz dodałem plik .htaccess w którym znajduje się:

Options FollowSymLinks

RewriteEngine On

RewriteRule ^([a-zA-Z0-9_-]+)/?.html$ /index.php?go=$1 [L]


RewriteCond %{REQUEST_URI} ^\/index.php$

RewriteCond %{QUERY_STRING} ^$

RewriteRule ^(.*)$ http://forsmart.pl/ [L,R=301]

Teraz moje adresy wyglądają następująco: www.domena.pl/start.html

Dostałem maila od firmy, która zajmuje się pozycjonowaniem, lecz nie wiem o co im teraz dokładnie chodziło:

Nie rozumiem? przecież przekierowałem stare linki na nowe?


(Drobok) #8

RewriteCond %{REQUEST_URI} ^\/index.php$

RewriteCond %{QUERY_STRING} ^$

RewriteRule ^(.*)$ http://forsmart.pl/ [L,R=301]

To jest wina tego, masz przekierować wszystkie stare linki na nowe za pomocą przekierowania 301.

Options +FollowSymlinks

RewriteEngine on

RewriteCond %{THE_REQUEST} ^GET\s/+index\.php [NC]

RewriteCond %{QUERY_STRING} (^|&|\?)go=(.*)(&|$) [NC]

RewriteRule . /%2.html? [R=301,L,NC]


RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.+)$ index.php?go=$1 [L]

edit // na 90% działa, wybacz mój wcześniejszy błąd 301 przecież przekierowuje zapomniałem, że w htaccess też się da.


(Asd1336) #9

Nie wiem jak na to wpadłeś, ale jesteś wielki! Działa! na pewno się bardzo przyda, jak ktoś będzie chciał wypozycjonować dobrze stronę! : ) Dziękuję Ci bardzo! ; )