Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [htaccess] Znak zapytania w przekierowaniu
php11
post 25.03.2016, 11:09:21
Post #1





Grupa: Zarejestrowani
Postów: 213
Pomógł: 5
Dołączył: 11.02.2011

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


Cześć,


W htaccess chcę przekierować wszystkie adresy z frazą com_content na nowy adres.
Mam taką regułkę:

  1. RewriteRule ^(.*)com_content(.*) /nowy-adres [L,R=301]


Działa, o ile w adresie nie ma znaku ?

Np. tego: index.php?option=com_content już nie przekieruje


Poradzicie?
Z góry dzięki

Ten post edytował php11 25.03.2016, 11:10:07
Go to the top of the page
+Quote Post
Johnas
post 25.03.2016, 12:22:07
Post #2





Grupa: Zarejestrowani
Postów: 650
Pomógł: 16
Dołączył: 5.07.2010
Skąd: Ściśle Tajne

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


miałem ten sam problem... zamiast znaku zapytania w adresie musisz wpisać "%3F"

Zobacz temat:
http://forum.php.pl/index.php?showtopic=247719

@Edit:
Nie doczytałem do końca, tego nie zmieni ponieważ tutaj masz już dwie zmienne

  1. RewriteRule ^(.*)/(.*)$ index.php?$1=$2

sprawi że adres będzie teraz www.example.com/option/com_content

Zamieszczam grafikę dla wzorca:


W htaccesie używaj znaków które mają być dozwolone w adresie url, gdyż będzie to dodatkowym zabezpieczeniem przed atakami na stronę

Ten post edytował GodOfPeople 25.03.2016, 12:22:59


--------------------
Jak coś jest dobre, to nie znaczy że nie może być to lepsze - Ideały nie istnieją ;D
Strony internetowe Świnoujście
Go to the top of the page
+Quote Post
php11
post 26.01.2018, 10:26:54
Post #3





Grupa: Zarejestrowani
Postów: 213
Pomógł: 5
Dołączył: 11.02.2011

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


Niestety rozwiązanie nie działa.
Jak przekierować w htaccess adresy ze znakiem zapytania?


RewriteRule ^(.*)com_content(.*) /nowy-adres [L,R=301]


Działa, o ile w adresie nie ma znaku ?

Np. tego: index.php?option=com_content już nie przekieruje

Go to the top of the page
+Quote Post
nospor
post 26.01.2018, 10:35:12
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Bo znak zapytania w URL oddziela jedna czesc URL od innej, tzw query.

Trzeba wiec inaczej kombinowac
https://simonecarletti.com/blog/2009/01/apa...ring-redirects/
https://simonecarletti.com/blog/2009/01/apa...d-query-string/


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
php11
post 26.01.2018, 10:41:54
Post #5





Grupa: Zarejestrowani
Postów: 213
Pomógł: 5
Dołączył: 11.02.2011

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


Dzięki za odpowiedź.


Mam zacząć od?

RewriteCond %{QUERY_STRING} ^com_content$
Go to the top of the page
+Quote Post
nospor
post 26.01.2018, 10:46:27
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Na stronie masz podane jak masz to zrobic. Moim zdaniem przyklady sa dosc lopatologiczne

zas co do samego
^com_content$
to niby co wg. ciebie to oznacza? Bo zdaje sie mowiles, ze twoje query string wyglada tak:
option=com_content

a regulce mowisz ze wyglada tak
com_content
wiec sie zdecyduj


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
php11
post 26.01.2018, 10:50:50
Post #7





Grupa: Zarejestrowani
Postów: 213
Pomógł: 5
Dołączył: 11.02.2011

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


Za moich czasów nie uczyło się angielskiego...

Już wiem, że to nie działa:

RewriteCond %{QUERY_STRING} ^option=com_content$
RewriteRule ^(.*)option=com_content(.*)$ /nowy-adres [L,R=301]
Go to the top of the page
+Quote Post
nospor
post 26.01.2018, 10:55:26
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Twoje czasy sa rowniez i teraz i teraz jakos ludzie sie ucza.

I mowiac, ze przyklady sa dosc lopatologiczne mialem na mysli PRZYKLADY a nie text. Przyklady nie sa po angielsku.

np. to
RewriteRule ^(.*)$ http://example.site/page/%1.pdf [R=302,L]

czyli on juz nie sprawdza adresu tylko leci po wszystkim, wiec u ciebie analogicznie ma byc bo przeciez w adresie nie masz juz com_content co zdaje sie juz ci wyjasnialem.... po polsku.... tongue.gif

RewriteCond %{QUERY_STRING} ^option=com_content$
RewriteRule ^(.*)$ /nowy-adres [L,R=301]

albo zeby bylo w ogole uniwersalnie to:
RewriteCond %{QUERY_STRING} ^.*com_content.*$
RewriteRule ^(.*)$ /nowy-adres [L,R=301]


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Pyton_000
post 26.01.2018, 10:55:48
Post #9





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

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


To sobie na rosyjski przetłumacz jak angielskiego nie umiesz...
Go to the top of the page
+Quote Post
php11
post 27.01.2018, 11:37:37
Post #10





Grupa: Zarejestrowani
Postów: 213
Pomógł: 5
Dołączył: 11.02.2011

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


Cytat(nospor @ 26.01.2018, 10:55:26 ) *
RewriteCond %{QUERY_STRING} ^.*com_content.*$
RewriteRule ^(.*)$ /nowy-adres [L,R=301]



Nie daję rady, pełny adres jest taki:

domena.pl/index.php?option=com_content&task=blogcategory&id=60&Itemid=99999
Go to the top of the page
+Quote Post
trueblue
post 27.01.2018, 12:12:33
Post #11





Grupa: Zarejestrowani
Postów: 6 799
Pomógł: 1827
Dołączył: 11.03.2014

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


Na jaki URL ma być przekierowanie z tego adresu?


--------------------
Go to the top of the page
+Quote Post
php11
post 27.01.2018, 12:13:45
Post #12





Grupa: Zarejestrowani
Postów: 213
Pomógł: 5
Dołączył: 11.02.2011

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


Dowolny adres, który zawiera "com_content" na /nowy-adres

Dzięki
Go to the top of the page
+Quote Post
trueblue
post 27.01.2018, 12:51:12
Post #13





Grupa: Zarejestrowani
Postów: 6 799
Pomógł: 1827
Dołączył: 11.03.2014

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


Kod
RewriteCond %{QUERY_STRING} option=com_content
RewriteRule .* /nowy-adres?


--------------------
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 Wersja Lo-Fi Aktualny czas: 10.06.2025 - 10:35