Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> Przekierowanie podstron 301 z id na bez id, Przekierowanie podstron w stylu index.php?id=czesci&lang=pl
sphinx
post 21.08.2014, 18:37:36
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 6.02.2006
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Wita,
potrzebuję pomocy przy napisaniu odpowiednich reguł do przekierowania strony za pomocą 301.

Poniżej użyty obecnie kod:

Kod
RewriteEngine On

RewriteCond %{HTTP_HOST} ^atckaczmarczyk.pl$
RewriteRule ^(.*) [url="http://www.atckaczmarczyk.pl/$1"]http://www.atckaczmarczyk.pl/$1[/url] [QSA,L,R=301]
RewriteRule ^([^.]+)/([^.]+)/$ index.php?page=$1&lang=$2 [L,N]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d


Potrzebuję dodatkowo do tego dopisać przekierowania podstron poprzez 301 aby Google widział tylko maskowane adresy a stare adresy przekierować w celu przeniesienia siły SEO.

Stary link który chcę przekierować:
Kod
http://www.atckaczmarczyk.pl/index.php?page=czescivw&lang=pl

A to jest nowy link do którego to przekierowania ma prowadzić:
Kod
http://www.atckaczmarczyk.pl/czescivw/pl/


Chodzi o to aby nie istniał taki adres jak

Kod
http://www.atckaczmarczyk.pl/index.php?page=czescivw&lang=pl

Gdy wpiszemy taki stary adres np. ręcznie powinien się automatycznie zmienić na nowy adres
Kod
http://www.atckaczmarczyk.pl/czescivw/pl/


Zgóry dziękuję za pomoc bo już tracę na to siły smile.gif

Ten post edytował sphinx 21.08.2014, 18:48:59
Go to the top of the page
+Quote Post
Pyton_000
post 21.08.2014, 19:05:55
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Kod
RewriteRule ^([^/]*)/([^/]*)$ /index.php?page=$1&lang=$2 [L,R=301]
Go to the top of the page
+Quote Post
sphinx
post 22.08.2014, 08:30:44
Post #3





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 6.02.2006
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Hej,
może jest jeszcze coś nie tak, bo dostaję 404.
Wyczyściłem pamięć podręczną. Zawsze zmieniam na 302 aby nie zapamiętywałą przeglądarka sobie już 301 bo wiem że z tym są problemy.

Kod
RewriteRule ^([^/]*)/([^/]*)$ /index.php?page=$1&lang=$2 [L,R=302]


Może jakaś inna sugestia?
Go to the top of the page
+Quote Post
Pyton_000
post 22.08.2014, 10:14:42
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


pokaż cały htaccess
Go to the top of the page
+Quote Post
sphinx
post 22.08.2014, 11:06:45
Post #5





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 6.02.2006
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Ponizej cały kod jaki jest użyty w pliku

Kod
RewriteEngine On

RewriteCond %{HTTP_HOST} ^atckaczmarczyk.pl$
RewriteRule ^(.*) http://www.atckaczmarczyk.pl/$1 [QSA,L,R=301]
RewriteRule ^([^.]+)/([^.]+)/$ index.php?page=$1&lang=$2 [L,N]
#RewriteRule ^([^/]*)/([^/]*)$ /index.php?page=$1&lang=$2 [L,R=302]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
Go to the top of the page
+Quote Post
Turson
post 22.08.2014, 11:21:30
Post #6





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


RewriteRule ^(.*) http://www.atckaczmarczyk.pl/$1 [QSA,L,R=301]
Brakje tutaj $
RewriteRule ^(.*)$ http://www.atckaczmarczyk.pl/$1 [QSA,L,R=301]
poza tym, chyba powinno być bez domeny itd, czyli
RewriteRule ^(.*)$ $1 [QSA,L,R=301]
Go to the top of the page
+Quote Post
sphinx
post 22.08.2014, 13:08:50
Post #7





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 6.02.2006
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Nic z tego - nie działa.
Dodałem jedynie faktycznie znak dolara prze przekierowaniu bez www na z WWW. Więc aktualny kod wygląda następująco:
Kod
RewriteEngine On

RewriteCond %{HTTP_HOST} ^atckaczmarczyk.pl$
RewriteRule ^(.*)$ http://www.atckaczmarczyk.pl/$1 [QSA,L,R=301]
RewriteRule ^([^.]+)/([^.]+)/$ index.php?page=$1&lang=$2 [L,N]
#RewriteRule ^([^/]*)/([^/]*)$ /index.php?page=$1&lang=$2 [L,R=302]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d


Jakieś inne pomysły.
Będę wdzięczny co_jest.gif
Go to the top of the page
+Quote Post
trueblue
post 22.08.2014, 14:55:59
Post #8





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Które przekierowanie nie działa?

Jeśli chodzi o przepisanie z przekierowaniem, z brzydkiego na ładne, to spróbuj dopisać to:
  1. RewriteCond %{QUERY_STRING} ^page=(.+)&lang=(.+)
  2. RewriteRule ^(.*)$ /%1/%2? [L,R=301]

Przy czym to niekoniecznie musi działać, spotkałem się z przypadkiem, że wpada w pętlę przekierowań.

P.S. Stosuj jednak 301, jeśli chcesz, tak jak piszesz, przenieść siły SEO.


--------------------
Go to the top of the page
+Quote Post
sphinx
post 23.08.2014, 08:07:35
Post #9





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 6.02.2006
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Już prawie się udało.

Czyli kod powyżej działa na tyle, że faktycznie otrzymuję linki przyjazdne w postaci http://www.atckaczmarczyk.pl/ofirmie/pl/ a dodatkowo przekierowuje stronę jeżeli wpisuję stare linki w stylu: http://www.atckaczmarczyk.pl/index.php?pag...ivw&lang=pl na link przyjazdny czyli http://www.atckaczmarczyk.pl/czescivw/pl/

Jedyna teraz trudność to taka, że dostaję komunikat o błędzie 404 - strona nie istnieje. Jako adres takiej strony podany jest np. czescivw/pl/

Jakieś sugestie co może być tego przyczyną ?
Go to the top of the page
+Quote Post
trueblue
post 23.08.2014, 09:19:01
Post #10





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Przy wczytywaniu strony otrzymujesz taki komunikat, czy jakiś element na stronie jest zwracany z takim statusem?


--------------------
Go to the top of the page
+Quote Post
sphinx
post 25.08.2014, 08:37:06
Post #11





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 6.02.2006
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Otórz strona główna poprawnie się wyświetlanie. Nie ma żadnych problemów.
Pojawia się on dopiero jak chcę przejść na podstronę.
Jedyne co się wyświetla to jak na obrażku poniżej:
Go to the top of the page
+Quote Post
trueblue
post 25.08.2014, 08:59:57
Post #12





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


I ten .htaccess jest obecnie na stronie?
Jeśli tak, to u mnie strona jest wyświetlana poprawnie.


--------------------
Go to the top of the page
+Quote Post
Pyton_000
post 25.08.2014, 09:10:55
Post #13





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


U mnie też, istotny jest ostatni / na końcu adresu
Go to the top of the page
+Quote Post
sphinx
post 25.08.2014, 11:28:11
Post #14





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 6.02.2006
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Aktuwlnie jest wykomentowany.
Poniżej jak wygląda plik htacces teraz:

Kod
RewriteEngine On

RewriteCond %{HTTP_HOST} ^atckaczmarczyk.pl$
RewriteRule ^(.*)$ http://www.atckaczmarczyk.pl/$1 [QSA,L,R=301]
RewriteRule ^([^.]+)/([^.]+)/$ index.php?page=$1&lang=$2 [L,N]
#RewriteRule ^([^/]*)/([^/]*)$ /index.php?page=$1&lang=$2 [L,R=302]
    
#RewriteCond %{QUERY_STRING} ^page=(.+)&lang=(.+)
#RewriteRule ^(.*)$ /%1/%2/? [L,R=302]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d


Zatem kiedy zmieniam kod na taki:
Kod
RewriteEngine On

RewriteCond %{HTTP_HOST} ^atckaczmarczyk.pl$
RewriteRule ^(.*)$ http://www.atckaczmarczyk.pl/$1 [QSA,L,R=301]
RewriteCond %{QUERY_STRING} ^page=(.+)&lang=(.+)
RewriteRule ^(.*)$ /%1/%2/? [L,R=302]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d


Dostaję błąd 404 tylko dla podstron. Strona główna działa poprawnie.

Ten post edytował sphinx 25.08.2014, 11:30:11
Go to the top of the page
+Quote Post
trueblue
post 25.08.2014, 11:41:38
Post #15





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Przekierowanie, które wcześniej podał Ci Pyton_000 ma zostać.
Mają być regułki dla ładnych adresów, jaki i to co ja Ci podałem (stąd wspomniałem, że może wpaść w pętlę przekierowań).


--------------------
Go to the top of the page
+Quote Post
sphinx
post 25.08.2014, 11:47:27
Post #16





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 6.02.2006
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Trochę się zgubiłem.
Biorąc to do kupy jak powinien wyglądać kod?

W takiej postaci jak poniżej nie działa. Nie doś że jest 404 to i nie przekierowuje starych adresów na nowe maskowane.

Kod
RewriteEngine On

RewriteCond %{HTTP_HOST} ^atckaczmarczyk.pl$
RewriteRule ^(.*)$ http://www.atckaczmarczyk.pl/$1 [QSA,L,R=301]
RewriteRule ^([^/]*)/([^/]*)$ /index.php?page=$1&lang=$2 [L,R=302]
RewriteCond %{QUERY_STRING} ^page=(.+)&lang=(.+)
RewriteRule ^(.*)$ /%1/%2? [L,R=302]
Go to the top of the page
+Quote Post
trueblue
post 25.08.2014, 12:08:54
Post #17





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Spróbuj tak:

Kod
RewriteEngine On

RewriteCond %{HTTP_HOST} ^atckaczmarczyk.pl$
RewriteRule ^(.*)$ http://www.atckaczmarczyk.pl/$1 [QSA,L,R=301]

RewriteCond %{REQUEST_URI} ^([^/]*)/([^/]*)$
RewriteRule  ^(.*)$ /index.php?page=%1&lang=%2 [L,R=301]

RewriteCond %{QUERY_STRING} ^page=(.+)&lang=(.+)
RewriteRule ^(.*)$ /%1/%2? [L,R=301]



--------------------
Go to the top of the page
+Quote Post
sphinx
post 25.08.2014, 12:36:28
Post #18





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 6.02.2006
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Gubi się strasznie.
Po wpisaniu ręcznie adresu www.atckaczmarczyk.pl zaraz robi przekierowania na taki adres:
http://www.atckaczmarczyk.pl/index.php?pag...;lang=index.php
Go to the top of the page
+Quote Post
trueblue
post 25.08.2014, 12:57:47
Post #19





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Kod
RewriteEngine On

RewriteCond %{HTTP_HOST} ^atckaczmarczyk.pl$
RewriteRule ^(.*)$ http://www.atckaczmarczyk.pl/$1 [QSA,L,R=301]

RewriteCond %{REQUEST_URI} ^/(.+)/(.+)$
RewriteRule  ^(.*)$ /index.php?page=%1&lang=%2 [L,R=301]

RewriteCond %{QUERY_STRING} ^page=(.+)&lang=(.+)
RewriteRule ^(.*)$ /%1/%2? [L,R=301]


--------------------
Go to the top of the page
+Quote Post
sphinx
post 25.08.2014, 13:10:55
Post #20





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 6.02.2006
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Teraz wygląda to tak że strona główna oczywiście się ładuje.
Podstrona dostaje komunikat Nieprawidłowe przekierowanie
Natomiast link w starym stylu: http://www.atckaczmarczyk.pl/index.php?pag...ivw&lang=pl
nie są przepisywane na nowy skrócony wygląd.
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 16.04.2024 - 07:18