Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przyjazne linki na stronie
Forum PHP.pl > Forum > Optymalizacja i pozycjonowanie stron - SEO
albwikesl
Witam, stworzyłem sobie stronkę w html'u, jednak mam problem z tzn. przyjaznymi linkami.
Moja strona składa się z strony głównej i kliku podstron. Na razie udało mi się przekierować stronkę o adresie www.mojadomena.pl na mojadomena.pl. Jednak mam inny problem - mianowicie adresy moich podstron mają na końcu rozszerzenia html, np. mojadomena.pl/kontakt.html. Chciałbym pozbyć się tego rozszerzenia, ale w taki sposób, że jeżeli ktoś wpisze w pasku adresu mojadomena.pl/kontakt.html zostanie przekierowany automatycznie na mojadomena.pl/kontakt - mam nadzieję, że wiecie w czym jest rzecz.
Mój plik htaccess wygląda teraz tak:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^mojadomena.pl [NC]
RewriteRule ^(.*)$ http://mojadomena.pl%{REQUEST_URI} [R=301,L]
RewriteRule ^index.html$ http://mojadomena.pl [R=301,L,NC]

RewriteRule ^(contact|how-to-use|terms-service|index)$ $1.html

Ostatnia linijka pozwala na adresy typu mojadomena.pl/kontakt, lecz po wpisaniu mojadomena.pl/kontakt.html strona także istnieje, więc występuje "duplicate content".
Mam nadzieję, że wystarczająco jasno napisałem co chciałbym osiągnąc i ktoś będzie w stanie mi pomóc.
Z góry dziękuje za wszystkie odpowiedzi, które pomogą mi rozwiązać mój problem smile.gif
trueblue
RewriteRule /(contact|how-to-use|terms-service|index).html$ /$1 [L,R=301]
albwikesl
Po wstawieniu tego kodu do htaccess nie działają w ogóle linki w formie mojadomena.pl/kontakt. Dostęp do strony jest możliwy tylko przez mojadomena.pl/kontakt.html :/
trueblue
A usunąłeś ostatnią regułę ze swojego przykładu?
albwikesl
Tak, zamieniłem ją z tą co podesłałeś smile.gif
trueblue
Ok, to wrzuć tu jak teraz wygląda cały htaccess.
albwikesl
Proszę bardzo:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^mojadomena.pl [NC]
RewriteRule ^(.*)$ http://mojadomena.pl%{REQUEST_URI} [R=301,L]
RewriteRule ^index.html$ http://mojadomena.pl [R=301,L,NC]


RewriteRule /(contact|how-to-use|terms-service|index).html$ /$1 [L,R=301]

Już poradziłem sobie z tym, lecz mam jeszcze jeden problem.
Chciałbym, aby adresy mojadomena.pl/kategoria/zmienna/costam byly przekierowywany na mojadomena.pl/zmienna/costam (usuniecie "kategoria" z adresu).
Zastosowałem coś takiego:
RewriteRule ^kategoria/(.*)/(contact|how-to-use|terms-service|index)$ $1/$2.html
Niby działa, bo przekierowuje na: /zmienna/podstrona.html, ale przeglądarka wywala błąd "Not Found" - nie rozumiem dlaczego, proszę o pomoc.
trueblue
http://stackoverflow.com/a/15343741

P.S. Nie wiem dlaczego przepisujesz adresy bez ".html" na z ".html". W pierwszym poście pisałeś, że chcesz osiągnąć efekt odwrotny.
albwikesl
Tak jak pisałem, z tym już sobie poradziłem, a linijkę, którą wkleiłem dałem tylko do wglądu, aby rozwiązać problem tego, że po zmianie linka dostaje błąd 404.
Dziękuje za odpowiedzi, mam nadzieję, że link który mi podesłałeś rozwiąże sprawę smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.