Ocena wątku:
- 0 głosów - średnia: 0
- 1
- 2
- 3
- 4
- 5
parametr bez parametru htaccess
|
Liczba postów: 252
Liczba wątków: 10
Dołączył: 06-02-2012
Reputacja:
14
04-10-2012, 16:18
(Ten post był ostatnio modyfikowany: 04-10-2012, 16:19 przez camelrafal.)
jak przekierować z
Kod: .../costam/?wyslano=true
na
i przekazać parametry (query_string)
jeżeli przekierowujemy bez [R=301] to adres w przeglądarce nam się nie zmienia ale zmienia się miejsce docelowe i możemy przekazać jakieś query_string (?costam=costam) którego nie widać w adresie
chodzi o to żeby adres się zmienił [R=301] , nie było w nim (?wyslano=true) ale mimo wszystko żeby ten parametr został przekazany (po cichu,pod spodem)
Liczba postów: 2,587
Liczba wątków: 2
Dołączył: 03-04-2010
Reputacja:
58
Flagi QSA i L powinny załatwić sprawę, nie?
Dobre samopoczucie w tym tygodniu sponsoruje cytat:
Cytat:Mogę tylko tylko na prawo i lewo ale na środek nie mogę.
Liczba postów: 252
Liczba wątków: 10
Dołączył: 06-02-2012
Reputacja:
14
04-10-2012, 16:48
(Ten post był ostatnio modyfikowany: 04-10-2012, 17:24 przez camelrafal.)
no właśnie kombinuje od 2 godzin i nie moge wykombinować
w normalnej sytuacji np
żeby /wyslano/ przekierować na /costam.php?wyslano=true wystarczą zwykłe QSA i L i adres jest /wyslano/ podczas gdy query_string jest przekazany ( wyslano=true ) i go nie widać w adresie
łatwo się zmienia z /wyslano/ na /costam.php?wyslano=true ale gdy trzeba usunąć parametr to już nie jest tak łatwo
łatwo jest przekształcić coś w coś innego ale żeby coś było a potem żeby tego nie było a mimo to było  to już jest trochę ciężej
póki co mam takie 3 linijki
Kod: 1-> RewriteCond %{QUERY_STRING} ^wyslano=true$
2-> RewriteRule ^(.*)$ /$1 [R=301,QSD]
3-> RewriteRule ^(.*)$ /$1?wyslano=true [L]
tylko jak zrobić aby 3 wykonywała się tylko razem z 2 ?
jeżeli 2 sie nie wykona to żeby nie wykonywało też 3
jest jakaś flaga do tego?
Liczba postów: 252
Liczba wątków: 10
Dołączył: 06-02-2012
Reputacja:
14
04-10-2012, 17:56
(Ten post był ostatnio modyfikowany: 04-10-2012, 19:01 przez camelrafal.)
próbuje też ustawiać zmienne
Kod: RewriteCond %{QUERY_STRING} ^wyslano=true$
RewriteCond %{ENV:WYSLANO} !true
RewriteRule ^(.*)$ /$1 [R=301,QSD,E=WYSLANO:true]
RewriteCond %{ENV:WYSLANO} true
RewriteRule ^(.*)$ /$1?wyslano=true [L,E=!WYSLANO]
ale też nie działa
nie działa nawet CHAIN
Kod: RewriteCond %{QUERY_STRING} ^wyslano=true$
RewriteRule ^(.*)$ /$1 [R=301,C]
RewriteRule ^(.*)$ /$1?wyslano=true [L]
zawsze otrzymuje komunikat
Moved Permanently
The document has moved here.
gdzie here to strona z ?wyslano=true (początkowa)
Liczba postów: 2,587
Liczba wątków: 2
Dołączył: 03-04-2010
Reputacja:
58
Zaraz, ale flaga QSD odrzuca query_string, czyż nie? Nie mam teraz dostępu do serwera z Apachem, jak będę miał, to aż przetestuję.
Dobre samopoczucie w tym tygodniu sponsoruje cytat:
Cytat:Mogę tylko tylko na prawo i lewo ale na środek nie mogę.
Liczba postów: 252
Liczba wątków: 10
Dołączył: 06-02-2012
Reputacja:
14
04-10-2012, 19:24
(Ten post był ostatnio modyfikowany: 04-10-2012, 19:25 przez camelrafal.)
QSD odrzuca , o to właśnie chodziło aby najpierw odrzuciło query_string , przekierowało [R=301] na adres bez query_stringa i dopiero potem przekierowało na adres z query_stringiem ale już bez [R=301] czyli bez zmieniania adresu w przeglądarce
robiłem też tak
Kod: 1-> RewriteCond %{QUERY_STRING} ^wyslano=true$
2-> RewriteRule ^(.*)$ /$1 [C,R=301]
3-> RewriteRule ^(.*)$ /?wyslano=ok [L,R=301]
wszystko działa dobrze jak w 3 jest R=301 a jak usune R=301 to sie już chrzani mimo że teoretycznie nie powinno
wartość wyslano może być dowolna ("ok","true","udalosie") i jest to bez znaczenia byle by tylko była w query_stringu ta zmienna
Liczba postów: 252
Liczba wątków: 10
Dołączył: 06-02-2012
Reputacja:
14
04-10-2012, 21:34
(Ten post był ostatnio modyfikowany: 05-10-2012, 03:00 przez camelrafal.)
chyba sie nie da tak zrobic w htaccessie
ponieważ gdy chce zmienić adres w przeglądarce muszę użyć flag [R,L] jednocześnie (dla pierwszego RewriteRule),
R-dla przekierowania L-dla natychmiastowego przekierowania
jeżeli po R nie nastąpi L to przekierowanie nie dojdzie do skutku(nie wyczyści nam adresu z query_string) i wykona następną zasadę poniżej i według niej sie zastosuje
a jeżeli L wystąpi to wyczyści nam adres z query_string ale nie wykona już następnej zasady która miałaby tego query_Stringa po cichu dodać (bez przekierowywania R)
zastosowanie flagi L (które jest konieczne do zmiany adresu w pasku przeglądarki) wyklucza dalszą zmianę adresu wyklucza także flagi C oraz N
nie wiem czy się nie mylę ale do tej pory nie udało mi się uzyskać pożądanego efektu
jedyną znaną mi na ten czas metodą na przekazanie parametru ale nie wyświetlanie go w adresie jest POST którego nie da się zastosować bezpośrednio z htaccess ani za pomocą Header('Location: ...');
ma ktoś jakieś pomysły?
Liczba postów: 252
Liczba wątków: 10
Dołączył: 06-02-2012
Reputacja:
14
nawet po przekierowaniu nie ma ustawionego 'HTTP_REFERER' więc nawet gdybym chciał ustawić zmienną środowiskową nie mam podane ostatniej strony aby móc sprawdzić czy adres poprzedniej strony zawierał parametr
mit obalony - nie da sie
|
Podobne wątki… |
Wątek: |
Autor |
Odpowiedzi: |
Wyświetleń: |
Ostatni post |
|
Przekierowanie 301 .htaccess dla całej domeny a dla podstron? |
hdckredyty |
2 |
3,572 |
04-10-2012, 00:47
Ostatni post: hdckredyty
|
|
.htaccess |
xtronix856 |
17 |
14,479 |
21-09-2012, 02:05
Ostatni post: xtronix856
|
|
.htaccess ukrywanie parametrów |
camelrafal |
0 |
1,931 |
20-09-2012, 17:12
Ostatni post: camelrafal
|
|
Zmiana linków .htaccess ? |
Stefan_113 |
0 |
1,896 |
29-08-2012, 16:42
Ostatni post: Stefan_113
|
|
Problem z htaccess |
lomek |
0 |
1,692 |
13-05-2012, 22:31
Ostatni post: lomek
|
Użytkownicy przeglądający ten wątek: 1 gości
|
|
Sponsorzy i przyjaciele
|
|
|