.htaccess - usuń "http://" z query string

1

Witam na forum,

Jak w temacie, potrzebuje aby mój .htaccess usuwał "http://" z query string gdy akurat tam się znajdzie. Mam skrypt umieszczony na wordpressowej stronie, do którego mogę podać parametr przez query string. Parametrem bywają urle, ale wordpress chyba nie lubi jak jest tam "http://", bo nie przekazuje wtedy tego parametru do skryptu. A więc chciałbym usuwać "http://" przez mod_rewrite.

Przykład:
chciałbym żeby
MojaStrona.pl/podstrona?url=http://InnaFajnaStrona.pl
zostało zmienione na
MojaStrona.pl/podstrona?url=InnaFajnaStrona.pl

gdy nie ma "http://" w query string, nic ma się nie zmieniać, gdy nie ma query string też ;)

Więc prośba do mistrza który czai mod_rewrite. Jak napisać taką regułe?

Z góry dzięki i pozdrawiam,
jukooz

1

Z reguły łatwiej i szybciej zabić mięsożernego drapieżnika niż zamykać go w klatce i karmić papką. Napisz swój szanowny skrypt po ludzku - problem solved.

0

Ze skryptem nie ma problemu. Skrypt ładnie przyjmuje "http://". To prawdopodobnie wordpressowi przeszkadza "http://" i "nie dopuszcza" wtedy parametru do skryptu. Nie sprawdzałem, ale może to też być wina hostingu. Tak czy siak, nie jest to problem z samym skryptem na 100 % (nie jestem autorem skryptu, ale jego działanie mogę sprawdzić na innej stronie - gwarantuje, że ładnie przyjmuje "http://"). A, ponieważ będzie to czasem używane, muszę obejść to ograniczenie.

Pozdrawiam

1

To przeczytaj zalecenia dotyczące pisania pluginów do wordpressa (to spory projekt, powinny być), zmodyfikuj sposób działania swojego skryptu tak, aby nie musiał używać przedrostka http://, albo pogrzeb w samym wordpressie.

0

Nie będzie wtedy łatwiej i szybciej, tak jak powiedziałeś. Plugin do wordpressa przekazujący query string do skryptu jest napisany mega prosto. Nie ma miejsca na wdarcie się błędu z tym związanego. Coś "wyżej" walczy z przedrostkiem "http://". Wordpressa nie będę modyfikował na pewno. Dwa inne wyjścia jakie kojarzę to .htaccess i WP Rewrite (jego wordpressowy "odpowiednik", który też wymaga znajomości mod_rewrite).

1

Skoro wordpress nie lubi przedrostka http:// to go nie używaj, a nie próbujesz wstrzyknąć cholernie dziwnego hacka i na siłę naprawić rzeczywistość choć "bezinwazyjnie". To tylko przysporzy dodatkowych problemów.

0

Jakich problemów? Potrzebuje tego. A nie wiem jakich problemów mogę się nabawić dodając regułę do .htaccess, która działa tylko i wyłącznie wtedy gdy problematyczny przedrostek znajduje się w urlu, a więc wtedy gdy skrypt nie zadziałałby tak jak to byłoby oczekiwane.

Tracę prostą "przenośność" pluginu, ale jest to dla mnie naprawdę sprawa absolutnie drugorzędna w tej chwili. Chcę żeby to działało i nie mam świadomości jakie problemy może mi to przysporzyć (tzn. wg mnie żadne).

1

Tylko po cholerę generujesz linki zawierające http://, jak potem chcesz to z linków na chama usuwać? :|

0

Gdybym tylko ja miał tego używać to bym o to nie dbał. Ale nie będę. Chcę żeby to działało we wszystkich przypadkach. Niezależnie od tego czy jest www czy nie ma www, czy jest http:// czy nie ma http://.

1

Przecież sam generujesz link dla użytkownika, sam decydujesz jak one mają wyglądać. To po jakiego grzyba ci ubezpieczenie na wypadek wpisania tam "dupa dupa 123"? Ta zagrywka z usuwaniem parametrów zawierających przedrostki określające schemat URI jest w sumie dość sensowna, zapobiega częściowo możliwości wpieprzenia gdzieś śmiesznej luki remote code inclusion wykorzystując słabą konfigurację PHP. Ty usilnie próbujesz z poziomu konfiguracji serwera httpd stworzyć dekorację, która do niczego się nie przyda, a źle użyta może potencjalnie otworzyć nowe luki bezpieczenstwa. Przewidywanie wszystkiego, łącznie z przypadkiem kiedy user na widok portalu wsadzi sobie wiadro na głowę i zacznie robić salto jest bez sensu.

0

W tym przypadku nie tylko ja sam będę generował te linki. Owszem, mogę zminimalizować prawdopodobieństwo tego, że "http://" się tam znajdzie, ale nie mogę go zlikwidować. Nie znam się na tym co prawda, ale coś m się wydaje, że to, że ta "dekoracja" "może potencjalnie otworzyć nowe luki bezpieczenstwa" nie odnosi się bezpośrednio do przypadku, o którym mówię. Zależy mi na tym żeby niezależnie od tego jaki adres url został tam wpisany, skrypt zrobił z nim co trzeba. Aktualnie działa to z wyjątkami, których wolałbym się pozbyć, a w "potencjalne luki bezpieczeństwa" w tym przypadku jakoś nie wierzę.

0

To jeśli tak bardzo tego potrzebujesz koduj linki za pomocą base64 (powszechnie używana i bezpieczna metoda). Wtedy wyjściowy url wygląda tak:
http://example.com/?url=aHR0cDovL2V4YW1wbGUuY29tLw==

0

Nie ja jestem autorem skryptu, ja tylko z niego korzystam. Zresztą to by się i tak mijało z celem w tym przypadku. Chcę żeby skrypt działał tak jak działa, wordpress rzuca mi małą kłodę pod nogi, więc chcę ją przeskoczyć. Nie odniosłeś się do tego co napisałem, więc sądzę, że nie ma tu miejsca na "potencjalne nowe luki bezpieczeństwa". Nie chcę kombinować, chcę to zrobić prosto. Ty najpierw mówiłeś o prostocie i szybkości, a potem mówisz mi o rzeczach, które byłyby x razy bardziej skomplikowane i zajęły x razy więcej czasu. Dzięki naszej dyskusji tylko upewniłem się, że .htaccess jest jedynym wartym rozważenia rozwiązaniem w tym przypadku. W międzyczasie dowiedziałem się, że WP Rewrite by sobie z tym nie poradziło.

Umiałbyś może napisać taką regułe mod_rewrite?

1 użytkowników online, w tym zalogowanych: 0, gości: 1