Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [inne][HTML]htaccess pytanie
codeszan
post
Post #1





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 2.07.2017

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


Skorzystalem z generatora (Mod Rewrite Generator) znajdujacego sie:
http://www.generateit.net/mod-rewrite/index.php

Mam link: http://www.localhost:8080/system/panel/?s=test

Chcialbym osiagnac adres: http://www.localhost:8080/system/panel/s/test

Wygenerowałem cos takiego:

  1. RewriteEngine On
  2. RewriteRule ^s/([^/]*)\.html$ :8080/system/panel/?s=$1 [L]


lecz niestety nie dziala, prosil bym o prawidlowo wygenerowany wpis do pliku htaccess na którym będę mógł się potem wzorować.
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 22)
trzczy
post
Post #2





Grupa: Zarejestrowani
Postów: 460
Pomógł: 49
Dołączył: 5.06.2011

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


[APACHE] pobierz, plaintext
  1. RewriteEngine On
  2. RewriteCond %{SERVER_PORT} ^8080$
  3. RewriteCond %{QUERY_STRING} ^s=([a-zA-Z0-9]*)$
  4. RewriteRule ^system/panel/?$ www.localhost:8080/system/panel/s/%1? [L,R=301]
  5. #Zwraca "http://www.localhost:8080/system/panel/s/test"
[APACHE] pobierz, plaintext


.htaccess online test

Ten post edytował trzczy 17.08.2017, 18:51:58
Go to the top of the page
+Quote Post
codeszan
post
Post #3





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 2.07.2017

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


Mógłbym prosić o wyjaśnienie jeszcze jednego:

Jeśli katalog system zmienie na np. xsystem i podmienie ten element w regule to, przestaje ona dzialac?
  1. RewriteEngine On
  2. RewriteCond %{SERVER_PORT} ^8080$
  3. RewriteCond %{QUERY_STRING} ^s=([a-zA-Z0-9]*)$
  4. RewriteRule ^xsystem/panel/?$ www.localhost:8080/xsystem/panel/s/%1? [L,R=301]


Ten post edytował codeszan 17.08.2017, 18:24:52
Go to the top of the page
+Quote Post
trzczy
post
Post #4





Grupa: Zarejestrowani
Postów: 460
Pomógł: 49
Dołączył: 5.06.2011

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


Wtedy bedzie działać w taki sposób, że adres
[APACHE] pobierz, plaintext
  1. http://www.localhost:8080/xsystem/panel/?s=test
[APACHE] pobierz, plaintext
będzie zamieniać na
[APACHE] pobierz, plaintext
  1. http://www.localhost:8080/xsystem/panel/s/test
[APACHE] pobierz, plaintext

Go to the top of the page
+Quote Post
codeszan
post
Post #5





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 2.07.2017

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


problem w tym, że
a) nie przechodzi nawet przez tester
cool.gif nie dziala tam gdzie chcialbym tego uzyc
Go to the top of the page
+Quote Post
trzczy
post
Post #6





Grupa: Zarejestrowani
Postów: 460
Pomógł: 49
Dołączył: 5.06.2011

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


Może masz jakąś literówkę, bo tu przechodzi.
Tester
Go to the top of the page
+Quote Post
codeszan
post
Post #7





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 2.07.2017

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


Error 404

a może to kwestia jakiegoś http, czy www? (forma wpisywania) bo na to też są osobne reguly ponoc?

?s=test dziala poprawnie

Ten post edytował codeszan 17.08.2017, 19:02:45
Go to the top of the page
+Quote Post
trzczy
post
Post #8





Grupa: Zarejestrowani
Postów: 460
Pomógł: 49
Dołączył: 5.06.2011

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


Tobie chyba chodzi o zamianę w odwrotną stronę. Nie A na B, tylko B na A.
Go to the top of the page
+Quote Post
codeszan
post
Post #9





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 2.07.2017

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


mam link
localhost:8080/system/panel/s?=test -- on dziala


localhost:8080/system/panel/s/test --chce uzyskac taki efekt ?

Co ciekawe taki link dziala:

localhost:8080/system/panel/?s/test

Ten post edytował codeszan 17.08.2017, 20:36:23
Go to the top of the page
+Quote Post
trzczy
post
Post #10





Grupa: Zarejestrowani
Postów: 460
Pomógł: 49
Dołączył: 5.06.2011

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


Co to znaczy "mam link" oraz "uzyskać efekt"?
Go to the top of the page
+Quote Post
codeszan
post
Post #11





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 2.07.2017

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


Nie zbyt wiem jak to jeszcze bardziej sprecyzować ale postram się. Po kolei. Mam zainstalowany serwer lokalny - XAMPP. Korzystajac z skypa. Musialem zmienic port na inny wybralem 8080. Programy te dzialaj na jednym porcie. Standardowy "link" dla lokalnego serwera to laczenie przez ip czyli 127.0.0.1 lub localhost. Ja wykorzystywalem powyzsza nazwe.
Czyli link uzywany w przegladarce tam gdzie wpisuje sie zazwyczaj www.wp.pl czy www.google.pl jest teraz localhost:8080. Dalej na lokalnym serwerze stowrzylem projekt o nazwie "serwer". Jest on dostepny pod linkiem localhost:8080/serwer. W swoim projekcie uzylem przekierowan GET ktore wytworzyly mi adres o którym ciagle pisze i chce zmodyfikowac na tzw. przyjazny link jak to jest np. w wordpress.
Właśnie z adresu localhost:8080/serwer/panel/?s=test chce zrobic przyjazny link i to jest moj cel a efekt .. juz napisalem w poprzednim poscie.

Ten post edytował codeszan 17.08.2017, 21:04:35
Go to the top of the page
+Quote Post
viking
post
Post #12





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Trzczy pytał w jaki sposób te linki zapisujesz na stronie. Bo powinno być tak jak pisał w poprzednim poście o a i b.
Swoją drogą łatwiej było zmienić ustawienia skype niż przenosić serwer.

Ten post edytował viking 17.08.2017, 21:28:13


--------------------
Go to the top of the page
+Quote Post
trzczy
post
Post #13





Grupa: Zarejestrowani
Postów: 460
Pomógł: 49
Dołączył: 5.06.2011

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


Czyli w pasku adresu przeglądarki wpisujesz www.localhost:8080/system/panel/s/test i odpala plik .../system/panel/index.php i w php jest dostępna wartość $_GET['s'] wynosząca 'test'.

Powinno zadziałać pierwsze albo drugie rozwiązanie (oba przechodzą ten test online, ale nie mam pewności):
[APACHE] pobierz, plaintext
  1. RewriteEngine On
  2. RewriteCond %{SERVER_PORT} ^8080$
  3. RewriteRule ^system/panel/s/(\w+)$ system/panel?s=$1
  4.  
  5. #wyjściowy: "http://www.localhost:8080/system/panel/s/test"
  6. #docelowy: "http://www.localhost:8080/system/panel?s=test"
[APACHE] pobierz, plaintext

[APACHE] pobierz, plaintext
  1. RewriteEngine On
  2. RewriteCond %{SERVER_PORT} ^8080$
  3. RewriteRule ^system/panel/s/(\w+)$ www.localhost:8080/system/panel?s=$1
  4.  
  5. #wyjściowy: "http://www.localhost:8080/system/panel/s/test"
  6. #docelowy: "http://www.localhost:8080/system/panel?s=test"
[APACHE] pobierz, plaintext


http://htaccess.mwl.be?share=d90e76ac-4957...12-2cfdd7c7afad
http://htaccess.mwl.be?share=5f57bb6c-9415...67-48a08809d315

A może nawet ta linia z RewriteCond jest niepotrzebna.

Ten post edytował trzczy 17.08.2017, 21:23:34
Go to the top of the page
+Quote Post
codeszan
post
Post #14





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 2.07.2017

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


Cytat
Czyli w pasku adresu przeglądarki wpisujesz www.localhost:8080/system/panel/s/test i odpala plik .../system/panel/index.php


www.localhost:8080/system/panel/s/test i przenosi na
Nie znaleziono obiektu!
Nie znaleziono żądanego URL-a na tym serwerze. Jeśli wpisałeś URL-a ręcznie, sprawdź, czy się nie pomyliłeś.
Cytat
i odpala plik .../system/panel/index.php i w php jest dostępna wartość $_GET['s'] wynosząca 'test'.


zgadza sie

Cytat
#wyjściowy: "http://www.localhost:8080/system/panel/s/test"
#docelowy: "http://www.localhost:8080/system/panel?s=test"


jeśli dobrze dozumiem to wyjsciowy to jest to co juz mam a tak nie jest mam adres
http://www.localhost:8080/system/panel?s=test
czyli odwrotność tego co tu jest
Go to the top of the page
+Quote Post
viking
post
Post #15





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Gdzie masz plik index.php?


--------------------
Go to the top of the page
+Quote Post
codeszan
post
Post #16





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 2.07.2017

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


plik index.php mam w folderze system czyli glowny folder projektu -- odpowiada za front
oraz
system/panel/index.php -- odpowada za panel

regułe którą próbujemy tu utworzyc chce by dzialala w panelu


plik htaccess jest w folderze system
Go to the top of the page
+Quote Post
viking
post
Post #17





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


To w system/panel wrzuć .htaccess:
Kod
RewriteEngine On
RewriteRule ^s/(.*) index.php?s=$1 [NC,L]


Ten post edytował viking 17.08.2017, 22:05:13


--------------------
Go to the top of the page
+Quote Post
trzczy
post
Post #18





Grupa: Zarejestrowani
Postów: 460
Pomógł: 49
Dołączył: 5.06.2011

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


No to mam nadzieję, że zadziałało. Chciałem tylko dodać, że z punktu widzenia serwera oraz modułu rewrite to tu następuje zamiana adresu "system/panel/s/test" na "system/panel?s=test", czyli ten jest pierwotny albo wyjściowy: "system/panel/s/test"
Go to the top of the page
+Quote Post
codeszan
post
Post #19





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 2.07.2017

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


To co podał viking działa.

Po modyfikacji:

localhost:8080/system/panel/index.php?s=test
upraszcza do
localhost:8080/system/panel/test

  1. RewriteEngine On
  2. RewriteRule ^([^.]*)$ index.php?s=$1 [NC,L]



Pytanie:

co jeśli wpiszemy

1# localhost:8080/system/panel/test/ --czyli dodatkowo kreska na koncu?
2# localhost:8080/system/panel/index.php?s=test&a=bocian -- co jesli bylby drugi parametr?
3# localhost:8080/system/panel/index.php?s=test&a=bocian&id=123 --- co jesli bedzie jeszcze ruchome id?

Jak zapisać takie reguły?
Wycodząc od tego samego cały czas.
Go to the top of the page
+Quote Post
trzczy
post
Post #20





Grupa: Zarejestrowani
Postów: 460
Pomógł: 49
Dołączył: 5.06.2011

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


Cytat(codeszan @ 18.08.2017, 22:53:44 ) *
Jak zapisać takie reguły?

To nie są reguły. Jeśli pytasz o regułę, to powinieneś napisać, że coś zamienia się na coś.
Np. 'system.panel/s/test' zamienia się na 'system.panel?s=test'

Najlepiej podać kilka przykładów zamiany.

Jeśli idzie o to, jak w regexie ująć fakt, że adres kończy się lub nie kończy ukośnikiem, to można to zapisać tak
[APACHE] pobierz, plaintext
  1. /?
[APACHE] pobierz, plaintext


Go to the top of the page
+Quote Post
viking
post
Post #21





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Najczęściej przepisuje się wszystko na index.php który wczytuje router a ten dalej odpowiednio przetwarza dane. Poczytaj trochę o MVC.


--------------------
Go to the top of the page
+Quote Post
codeszan
post
Post #22





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 2.07.2017

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


Ok to inaczej jak zapisać "reguły":

(Przypadki które chciałbym wiedzieć jak zapisywać)

localhost:8080/system/panel/index.php?s=test NA localhost:8080/system/panel/test
localhost:8080/system/panel/index.php?s=test NA localhost:8080/system/panel/test/
localhost:8080/system/panel/index.php?s=test&id=123 NA l ocalhost:8080/system/panel/test/123
localhost:8080/system/panel/index.php?s=test&id=123 NA l ocalhost:8080/system/panel/test/123/
localhost:8080/system/panel/index.php?s=test&a=update NA localhost:8080/system/panel/test/update
localhost:8080/system/panel/index.php?s=test&a=update NA localhost:8080/system/panel/test/update/
localhost:8080/system/panel/index.php?s=test&a=update&id=123 NA localhost:8080/system/panel/test/update/123
localhost:8080/system/panel/index.php?s=test&a=update&id=123 NA localhost:8080/system/panel/test/update/123/


localhost:8080 -- ten element jest na localhost, na serwerze jakimś już go nie będzie więc czy w regule można go nie używać jak poprzednio?
Za pomocą generatora jestem w stanie wygenerować te reguły, lecz nie niałają one poprawnie ;/

Chce to wykonać w kodzie strukturalnym. Bez użycia mvc.

Ten post edytował codeszan 19.08.2017, 10:14:47
Go to the top of the page
+Quote Post
viking
post
Post #23





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


https://stackoverflow.com/questions/1780697...amic-parameters


--------------------
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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 Aktualny czas: 20.08.2025 - 11:24