Najlepsza odpowiedź unbreak, 22 kwietnia 2014 - 08:13
Nooo, to w takim razie to będzie coś takiego:
rewrite ^/t(\d+)(-(\d+))?$ /topic.php?id=$1&strona=$3 last;
;]
Przejdź do postuNajlepsza odpowiedź unbreak, 22 kwietnia 2014 - 08:13
Nooo, to w takim razie to będzie coś takiego:
rewrite ^/t(\d+)(-(\d+))?$ /topic.php?id=$1&strona=$3 last;
;]
Przejdź do postuNapisano 17 kwietnia 2014 - 21:38
Cześć.
Potrzebuje zrobić rewrite pliku i jego argumentów w URL'u- ukryć kolejne za slashami i płazami np:
example.com/topic.php?id=23 example.com/t23
[czyli pierwsza litera- "t" -oznacza plik- topic.php a kolejne cyfry oznaczają parametr- id]
drugim argumentum jest paginacja [za płazą]:
example.com/topic.php?id=23&strona=2 example.com/t23-2
[fajnie by było, gdyby dla argumentu "strona" równemu jeden robiło redirekta 301 na link bez tego argumentu]
Jako, że takie coś jest łatwe do sforsowania- utworzenie linków do duplicate content potrzebuje ustawić limit tych parametrów, czyli zablokowanie możliwości dopisywania kolejnego slasha z ciągiem. Np:
example.com/t23-2/zly-link-do-duplikatu example.com/404.php
Pomoc w każdej postaci mile widziana.
Napisano 18 kwietnia 2014 - 08:22
Hehe, z rozpędu chciałem Ci podać rewrite'a dla IIS
Co do nginxa to bardzo dawno miałem z nim do czynienia i aktualnie nie mam do niego dostępu, także podaję na sucho:
server { server_name www.example.com example.com; rewrite ^t(\d+)(-\d+)?$ /topic.php?id=$1&strona$2 last; return 403; }
Sprawdź czy w ogóle działa - nie pamiętam czy przed pauzą nie powinno być backslasha
webDeveloper
Napisano 18 kwietnia 2014 - 11:15
Wywala mi error'a 403. Z backslashem również.
Jeszcze przy okazji mam pytanie. Jeżeli mam kilka plików do których chce zastosować podobną regułę jak do topic.php muszę zastosować osobne bloki location? np:
server{ location /t^. { rewrite ^t(\d+)(-\d+)?$ /topic.php?id=$1&strona$2 last; } location /logowanie^. { rewrite ^logowanie(\d+)(-\d+)?$ login.php?id=$1& last; } }
BTW- kolejne zmienne [w nich wrażenia regularne] ustawiam w nawiasach okrągłych?
Aktualnie całość pliku wygląda tak:
Napisano 18 kwietnia 2014 - 11:38
Wrzuć tak jak napisałeś, nie dawaj tego return;
location /t^. { rewrite ^t(\d+)(-\d+)?$ /topic.php?id=$1&strona$2 last; } location /logowanie^. { rewrite ^logowanie(\d+)(-\d+)?$ login.php?id=$1& last; }
webDeveloper
Napisano 18 kwietnia 2014 - 11:53
Bez return nie wypluwa błędów, ale nie przepisuje argsów:
Dla np. eample.com/t23 nie przepisuje do example.com/topic.php?id=23 , a wyświetla defaultową stronę.
Wezmę poszperam w doc'u, może coś ogarnę
Napisano 18 kwietnia 2014 - 12:00
Mi osobiście coś to nie pasuje:
location /t^.
skąd to wziąłeś?
Spróbuj dać tak:
location / { rewrite ^t20$ /topic.php?id=20 last; }
i sprawdź czy jak wejdziesz na t20 to zadziała, jeżeli zadziała to będziemy modyfikować. Jeżeli nie zadziała to znaczy że coś już tutaj jest nie tak
webDeveloper
Napisano 18 kwietnia 2014 - 12:32
Do Twojego kodu- działa, ale trzeba jeszcze dodać slasha przed t20$
Z tym:
location /t^.
chodziło mi o to, by utworzyć osobne bloki dla różnych plików. Wsadziłem tu wyrażenie regularne- t^. pasuje chyba dla "topic"- ^ rozpoczynam wyrażenie, a kropka zastępuje dowolne znaki.
edit:
Zmodyfikowałem kod nieco, i działa [łącznie z paginacją]:
rewrite ^/t(\d+)-(\d+)?$ /topic.php?id=$1&strona=$2 last;
Użytkownik Michał edytował ten post 18 kwietnia 2014 - 12:50
Napisano 18 kwietnia 2014 - 14:50
minus (myślnik) też musisz dać nawias:
rewrite ^/t(\d+)(-\d+)?$ /topic.php?id=$1&strona=$2 last;
Ale możliwe że trzeba przed niego dać również backslash. Ponieważ ten znak również jest alternatywny. Założę się że przy Twoim rozwiązaniu taki link:
/t29
nie działa
Użytkownik unbreak edytował ten post 18 kwietnia 2014 - 14:51
webDeveloper
Napisano 18 kwietnia 2014 - 15:36
Racja- t29 nie zadziała .
Ale znowu jak dam minus w drugi nawias, to wartość argumentu "strona" jest ujemna [z backslashem tak samo].
Napisano 22 kwietnia 2014 - 08:13 Najlepsza odpowiedź
Nooo, to w takim razie to będzie coś takiego:
rewrite ^/t(\d+)(-(\d+))?$ /topic.php?id=$1&strona=$3 last;
;]
webDeveloper
Napisano 22 kwietnia 2014 - 12:17
Heh myślałem, że będę liczył wartość bezwzględną, a wystarczyło dołożyć trzeci argument. Dzięki !
Temat | Forum | Autor | Podsumowanie | Ostatni post | |
---|---|---|---|---|---|
mod_rewrite, htaccess i 404 |
Hosting | unbreak |
|
0 użytkowników, 0 gości, 0 anonimowych