Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z htaccess na home.pl
Darnok017
post 24.01.2018, 12:23:50
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 7.05.2012
Skąd: Duczki

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


Dzień dobry,

Mam problem z htaccess na serwerze home.pl
Mianowicie chodzi o to, że próbuję pozbyć się ?id= z adresu URL
W kodzie strony wygląda to następująco

  1. if ($row['Count'] > 0) {
  2. echo '<li><a href="?id=' . $row['url'] . '">' . $row['nazwa'] . '</a>';
  3. display_children($row['id'], $level + 1);
  4. echo "</li>";
  5. } elseif ($row['Count']==0) {
  6. echo '<li><a href="?id=' . $row['url'] . '">' . $row['nazwa'] . '</a>';
  7. } else;
  8. }
  9. echo '</ul>';
  10. }


Natomiast htaccess wygląda tak:

  1. RewriteEngine On
  2.  
  3. RewriteCond %{HTTP_HOST} ^(www\.)?megakan-bud\.pl [NC]
  4. RewriteRule ^(.*)$ <a href="http://biower.pl/$1" target="_blank">http://biower.pl/$1</a> [R=301,L]
  5.  
  6. RewriteRule ^?id=([A-Za-z0-9-]+).php /$1 [L]


Przejrzałem już Google i to forum i niestety nie znalazłem nic co pomogło by mi w pozbyciu się tego nieszczęsnego ?id=
Go to the top of the page
+Quote Post
nospor
post 24.01.2018, 12:28:49
Post #2





Grupa: Moderatorzy
Postów: 34 069
Pomógł: 5634
Dołączył: 27.12.2004




No ale to:
echo '<li><a href="?id=' . $row['url'] . '">' . $row['nazwa'] . '</a>';
samo ci nie zniknie....

Musisz zamienic na:
echo '<li><a href="/' . $row['url'] . '">' . $row['nazwa'] . '</a>';


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

Najlepsze kawałki programistyczne || Dowcipy o informatykach || Forum PHP dla opornych
Klasy: Pager (stronicowanie) | Cache | ShoutBox (Chat) | Widok | Ładne url'e

"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
Darnok017
post 24.01.2018, 12:38:07
Post #3





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 7.05.2012
Skąd: Duczki

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


Niestety po zmianie tej części kodu, którą mi podesłałeś, niektóre linki kierowały na 404 Not found, a inne na starą stronę.
Go to the top of the page
+Quote Post
nospor
post 24.01.2018, 12:49:04
Post #4





Grupa: Moderatorzy
Postów: 34 069
Pomógł: 5634
Dołączył: 27.12.2004




Bo pewnie jeszcze gdzies masz blad. Ja ci tylko powiedzialem, ze jak cchcesz miec link w postaci:
http://mojastrona/costam
to takowy masz wpisac w html.


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

Najlepsze kawałki programistyczne || Dowcipy o informatykach || Forum PHP dla opornych
Klasy: Pager (stronicowanie) | Cache | ShoutBox (Chat) | Widok | Ładne url'e

"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
Darnok017
post 24.01.2018, 12:49:54
Post #5





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 7.05.2012
Skąd: Duczki

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


Rozumiem, że za pomocą htaccess nie pozbędę się tego bez zmian w kodzie tak?
Go to the top of the page
+Quote Post
nospor
post 24.01.2018, 12:52:08
Post #6





Grupa: Moderatorzy
Postów: 34 069
Pomógł: 5634
Dołączył: 27.12.2004




Tak.w tym wypadku htaccess sluzy tylko do konwersji z
http://mojastrona/costam
na
http://mojastrona?id=costam
i nic wiecej


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

Najlepsze kawałki programistyczne || Dowcipy o informatykach || Forum PHP dla opornych
Klasy: Pager (stronicowanie) | Cache | ShoutBox (Chat) | Widok | Ładne url'e

"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
Darnok017
post 24.01.2018, 13:18:03
Post #7





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 7.05.2012
Skąd: Duczki

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


Szkoda, że nie można zrobić tego w drugą stronę.
No dobra, ustawiłem tak jak mi powiedziałeś.

Te, które wyświetla mi jako 404 Not Found to sobie ogarnę, ale chyba już kwestią .htaccess jest to, że niektóre linki prowadzą do starej strony.

Chyba udało mi się dojść dlaczego tak się dzieje.
Ktoś zakodował stronę w taki sposób, iż nie ma żadnych plików na serwerze tylko pobiera informacje z bazy danych, dlatego to ?id= jest niezbędne do działania strony.

W takim wypadku zapewne nie ma dobrego rozwiązania jak przekodowanie strony.
Go to the top of the page
+Quote Post
nospor
post 24.01.2018, 13:34:51
Post #8





Grupa: Moderatorzy
Postów: 34 069
Pomógł: 5634
Dołączył: 27.12.2004




Cytat
Ktoś zakodował stronę w taki sposób, iż nie ma żadnych plików na serwerze tylko pobiera informacje z bazy danych, dlatego to ?id= jest niezbędne do działania strony.
Bylem swiecie przekonany iz zdawales sobei z tego sprawe. Inaczej czemu te ?id= w url bys mial? DLa zabawy? wink.gif

Poto wlasnie zamienia sie te ?id=costam na
http://mojastrona/costam
by ladniej wygladalo. A htaccess wewnetrznie i tak zmieni to na ?id=costam i wszystko dziala jak dzialalo.



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

Najlepsze kawałki programistyczne || Dowcipy o informatykach || Forum PHP dla opornych
Klasy: Pager (stronicowanie) | Cache | ShoutBox (Chat) | Widok | Ładne url'e

"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
Darnok017
post 24.01.2018, 13:58:37
Post #9





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 7.05.2012
Skąd: Duczki

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


No dobra, to muszę po prostu przekodować stronę.

Dziękuję za informacje i pomoc. Temat można zamknąć
Go to the top of the page
+Quote Post
trzczy
post 24.01.2018, 14:40:30
Post #10





Grupa: Zarejestrowani
Postów: 412
Pomógł: 47
Dołączył: 5.06.2011

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


A przekierowanie R=301 nie zmienia adresu w pasku adresu przeglądarki?
Go to the top of the page
+Quote Post
Darnok017
post 24.01.2018, 15:26:06
Post #11





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 7.05.2012
Skąd: Duczki

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


Mam dodać w tej linijce?

  1. RewriteRule ^?id=([A-Za-z0-9-]+).php /$1 [L]


Bo nie do końca rozumiem.
Aktualny plik htaccess, który wrzuciłem tutaj niestety nic nie zmienia.

W URL nadal widnieje www.biower.pl/?id=oferta.php
Index.php jest zakodowany w taki sposób, że pobiera informacje z bazy danych. Udało mi się dostać do niej dostęp i widziałem, że strony są właśnie tam zakodowane.

Chyba, że istnieje jakiś sposób, aby w kodzie ukryć to ?id=
Go to the top of the page
+Quote Post
trzczy
post 24.01.2018, 15:39:13
Post #12





Grupa: Zarejestrowani
Postów: 412
Pomógł: 47
Dołączył: 5.06.2011

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


Musimy ustalić, co to znaczy ukryć ?id= w kodzie.

Jak programista to ukryje, to jak sprawdzisz, czy on to ukrył? Sorka ale czasami intuicja to za mało do zrozumienia autora wątku, więc proponuję podejście test driven.
Go to the top of the page
+Quote Post
Darnok017
post 24.01.2018, 15:54:26
Post #13





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 7.05.2012
Skąd: Duczki

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


Chodzi mi o to, czy jest możliwość, aby wprowadzić ?id= w treści kodu w taki sposób, aby nie wyświetlało się w adresie URL, lub dopisać jakiś skrypt, który po prostu to ukryje we wspomnianym wcześniej adresie URL.

  1. if ($row['Count'] > 0) {
  2. echo '<li><a href="?id=' . $row['url'] . '">' . $row['nazwa'] . '</a>';
  3. display_children($row['id'], $level + 1);
  4. echo "</li>";
  5. } elseif ($row['Count']==0) {
  6. echo '<li><a href="?id=' . $row['url'] . '">' . $row['nazwa'] . '</a>';
  7. } else;
  8. }
  9. echo '</ul>';
  10. }
Go to the top of the page
+Quote Post
trzczy
post 24.01.2018, 16:55:38
Post #14





Grupa: Zarejestrowani
Postów: 412
Pomógł: 47
Dołączył: 5.06.2011

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


Czyli ktoś klika na linka http://example.com/site.php/?id=43 i wtedy w pasku adresu przeglądarki pojawia się adres http://example.com/site.php.

Następnie otwiera się strona http://example.com/site.php a wartość $_GET['id'] w kodzie strony site.php jest parsowana jako 43?

Ten post edytował trzczy 24.01.2018, 16:59:00
Go to the top of the page
+Quote Post
Darnok017
post 24.01.2018, 17:17:22
Post #15





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 7.05.2012
Skąd: Duczki

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


Zgadza się
Go to the top of the page
+Quote Post
trzczy
post 24.01.2018, 17:53:29
Post #16





Grupa: Zarejestrowani
Postów: 412
Pomógł: 47
Dołączył: 5.06.2011

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


Obawiam się, że przy nadpisaniu z przekierowaniem owszem pojawi się sam adres bez QS w pasku przeglądarki, ale informacja o id wynoszącym 43 zginie. Na razie nie mam pomysłu.
Go to the top of the page
+Quote Post
com
post 24.01.2018, 18:34:50
Post #17





Grupa: Zarejestrowani
Postów: 2 951
Pomógł: 358
Dołączył: 24.05.2012

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


ale ten kod musisz poprawić, nie ukrywać nic wink.gif


--------------------
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: 20.07.2018 - 19:20