Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> .htaccess, Przekierowanie z wyjątkiej mojego IP
m72
post
Post #1





Grupa: Zarejestrowani
Postów: 86
Pomógł: 0
Dołączył: 25.12.2012

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


Chcę przeprowadzić prace remontowe na mojej stronie i mam teraz zrobione przekierowanie na plik informujący o przerwie...
RewriteEngine On
RewriteCond $1 !^przerwa.html
RewriteRule ^(.*)$ http://mojastrona.pl/przerwa.html [R=302,L]


Jak wykluczyć z przekierowania moje IP ?

Ten post edytował m72 10.02.2016, 06:19:19
Go to the top of the page
+Quote Post
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Kod
RewriteEngine On
RewriteCond $1 !^przerwa.html
RewriteCond %{REMOTE_ADDR} !tu_adres_ip [NC]
RewriteRule ^(.*)$ http://mojastrona.pl/przerwa.html [R=302,L]


--------------------
Go to the top of the page
+Quote Post
el maciaso
post
Post #3





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 3.06.2011

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


Mam podobny problem więc nie chcę otwierać nowego wątku.

Mam na stronie ustawioną w htaccess zamianę polskich znaków na ich odpowiedniki

Kod
RewriteRule ^(.*)ą(.*)$ /$1a$2 [L,R=301]
...
RewriteRule ^(.*)ż(.*)$ /$1z$2 [L,R=301]


Teraz pojawia się problem przy podstronie z tagami, ponieważ konkretny tag sczytuję z parametru w adresie URL. Dlatego przy adresie ".../tagi/&tag=Opłata", adres zmienia mi się na ".../tagi/&tag=Oplata" i otrzymuję tag "Oplata" a nie "Opłata tak jak bym oczekiwał.

Jak mogę wykluczyć całą podstronę "/tagi/" z zamiany polskich znaków? Wpisywanie poszczególnych adresów dla konkretnych tagów trochę się mija z celem ponieważ ich lista rośnie i nie jestem w stanie obsłużyć wszystkich wyjątków.
Zamiana polskich znaków nie może też być wyłączona, gdyż jest niezbędna do przekierowań większości serwisu ze starych adresów URL.
Go to the top of the page
+Quote Post
Pyton_000
post
Post #4





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

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


A nie prościej obsłużyć polskie znaki po stronie skryptu?
Go to the top of the page
+Quote Post
el maciaso
post
Post #5





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 3.06.2011

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


Problem w tym że skrypt dostaje string z tagiem już po zamianie z polskich znaków więc pozostaje obsługiwanie wyjątków w skrypcie ("Oplata" = > "Opłata"). Zatem jest to rozwiązanie, którego chciałbym uniknąć.
Go to the top of the page
+Quote Post
Pyton_000
post
Post #6





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

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


Ja mówię w ogóle. po co zamieniać polskie znaki na nie polskie. Wywal te reguły z htaccess i zrób to po stronie serwera, no chyba że masz jakieś uzasadnienie takiej decyzji
Go to the top of the page
+Quote Post
el maciaso
post
Post #7





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 3.06.2011

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


Klientowi nie podobało się że przy kopiowaniu linków zamienia polskie znaki na np. "%C4%85", więc chciał żeby nie było polskich znaków w URL'ach. Zamieniłem zatem wszystkie URL'e na takie bez polskich znaków, a zamiana w htaccess miała spowodować że jeśli ktoś będzie miał link do starego adresu to automatycznie przekieruje go na nowy adres bez polskich znaków, zachowując przy tym pozycjonowanie adresów (301).

Jak można by to zrobić za pomocą skryptu, żeby nie ucierpiało SEO?
Go to the top of the page
+Quote Post
Pyton_000
post
Post #8





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

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


musisz przed każdym RewriteRula dać coś na wzór:

RewriteCont ${REQUEST_URI} !^/tag/

Chociaż pewnie wszystkie te reguły które masz dałoby się skrócić i ładniej zrobić, więc może je pokaż.
Go to the top of the page
+Quote Post
el maciaso
post
Post #9





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 3.06.2011

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


Reguły które zastosowałem, zamieniające polskie znaki:
Kod
RewriteEngine On
RewriteBase /

RewriteRule ^(.*)ą(.*)$ /$1a$2 [L,R=301]
RewriteRule ^(.*)ę(.*)$ /$1e$2 [L,R=301]
RewriteRule ^(.*)ś(.*)$ /$1s$2 [L,R=301]
RewriteRule ^(.*)ć(.*)$ /$1c$2 [L,R=301]
RewriteRule ^(.*)ó(.*)$ /$1o$2 [L,R=301]
RewriteRule ^(.*)ł(.*)$ /$1l$2 [L,R=301]
RewriteRule ^(.*)ż(.*)$ /$1z$2 [L,R=301]
RewriteRule ^(.*)ź(.*)$ /$1z$2 [L,R=301]


Dodatkowo jest jeszcze reguła niezbędna do prawidłowego działania CMS'a odpowiadająca za Friendly URL
Kod
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]


Jak można by tu zastosować RewriteCont ?
Go to the top of the page
+Quote Post
Pyton_000
post
Post #10





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

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


Napisałem Ci przecież jak.
Go to the top of the page
+Quote Post
el maciaso
post
Post #11





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 3.06.2011

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


Gdy daję przed każdą regułę to co napisałeś
Kod
RewriteCont ${REQUEST_URI} !^/tagi/
RewriteRule ^(.*)ą(.*)$ /$1a$2 [L,R=301]
RewriteCont ${REQUEST_URI} !^/tagi/
RewriteRule ^(.*)ę(.*)$ /$1e$2 [L,R=301]
RewriteCont ${REQUEST_URI} !^/tagi/
RewriteRule ^(.*)ś(.*)$ /$1s$2 [L,R=301]
RewriteCont ${REQUEST_URI} !^/tagi/
RewriteRule ^(.*)ć(.*)$ /$1c$2 [L,R=301]
RewriteCont ${REQUEST_URI} !^/tagi/
RewriteRule ^(.*)ó(.*)$ /$1o$2 [L,R=301]
RewriteCont ${REQUEST_URI} !^/tagi/
RewriteRule ^(.*)ł(.*)$ /$1l$2 [L,R=301]
RewriteCont ${REQUEST_URI} !^/tagi/
RewriteRule ^(.*)ż(.*)$ /$1z$2 [L,R=301]
RewriteCont ${REQUEST_URI} !^/tagi/
RewriteRule ^(.*)ź(.*)$ /$1z$2 [L,R=301]

wywala mi 500 Internal Server Error. Coś robięnie tak?
Go to the top of the page
+Quote Post
Pyton_000
post
Post #12





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

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


RewriteCond zamiast RewriteCont
Go to the top of the page
+Quote Post
el maciaso
post
Post #13





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 3.06.2011

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


Mój błąd, przepraszam za zamieszanie.

Niestety poprawienie na RewriteCond nie przynosi pożądanego skutku - cały czas zamienia polskie znaki.
Czy to ja robię coś źle czy po prostu nie można wykluczyć adresu z takiej reguły?
Go to the top of the page
+Quote Post
trueblue
post
Post #14





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Jakie masz kodowanie znaków pliku .htaccess?


--------------------
Go to the top of the page
+Quote Post
el maciaso
post
Post #15





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 3.06.2011

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


UTF-8 bez BOM
Go to the top of the page
+Quote Post
trueblue
post
Post #16





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Zrób kopię i wrzuć na serwer w którymś z: ISO-8859, ASCII, Windows-1250.


--------------------
Go to the top of the page
+Quote Post
el maciaso
post
Post #17





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 3.06.2011

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


Zmiana kodowania powoduje więcej problemów niż pożytku niestety. A jaki ma ono wpływ na te reguły?
Go to the top of the page
+Quote Post
trueblue
post
Post #18





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Jakich problemów?

Podpieram się tym:
Cytat
If file is Utf8-without-BOM, and if you do not use characters with diacritical marks "glāžšķūņrūķīši" then file can be utf8

https://www.sitepoint.com/community/t/file-...htaccess/7880/2


--------------------
Go to the top of the page
+Quote Post

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 Aktualny czas: 21.08.2025 - 09:51