![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 2.06.2014 Ostrzeżenie: (0%) ![]() ![]() |
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 (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
RewriteRule /(contact|how-to-use|terms-service|index).html$ /$1 [L,R=301]
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 2.06.2014 Ostrzeżenie: (0%) ![]() ![]() |
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 :/
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
A usunąłeś ostatnią regułę ze swojego przykładu?
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 2.06.2014 Ostrzeżenie: (0%) ![]() ![]() |
Tak, zamieniłem ją z tą co podesłałeś (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Ok, to wrzuć tu jak teraz wygląda cały htaccess.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 2.06.2014 Ostrzeżenie: (0%) ![]() ![]() |
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. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
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. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 2.06.2014 Ostrzeżenie: (0%) ![]() ![]() |
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ę (IMG:style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.09.2025 - 05:19 |