Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > pl.comp.lang.php > #15811 > unrolled thread
| Started by | Roman Tyczka <noemail@because.no> |
|---|---|
| First post | 2018-08-10 13:58 +0200 |
| Last post | 2018-09-07 13:33 +0200 |
| Articles | 11 — 3 participants |
Back to article view | Back to pl.comp.lang.php
przyjazne linki bez htaccess Roman Tyczka <noemail@because.no> - 2018-08-10 13:58 +0200
Re: przyjazne linki bez htaccess Borys Pogoreło <borys@pl.edu.leszno> - 2018-08-10 23:10 +0200
Re: przyjazne linki bez htaccess Roman Tyczka <noemail@because.no> - 2018-09-06 11:39 +0200
Re: przyjazne linki bez htaccess Roman Tyczka <noemail@because.no> - 2018-09-06 12:05 +0200
Re: przyjazne linki bez htaccess Borys Pogoreło <borys@pl.edu.leszno> - 2018-09-06 22:42 +0200
Re: przyjazne linki bez htaccess Roman Tyczka <noemail@because.no> - 2018-09-07 08:36 +0200
Re: przyjazne linki bez htaccess Roman Tyczka <noemail@because.no> - 2018-09-07 10:40 +0200
Re: przyjazne linki bez htaccess Borys Pogoreło <borys@pl.edu.leszno> - 2018-09-07 13:03 +0200
Re: przyjazne linki bez htaccess rePeter <no@spam.no> - 2018-09-07 11:08 +0200
Re: przyjazne linki bez htaccess Roman Tyczka <noemail@because.no> - 2018-09-07 13:15 +0200
Re: przyjazne linki bez htaccess rePeter <no@spam.no> - 2018-09-07 13:33 +0200
| From | Roman Tyczka <noemail@because.no> |
|---|---|
| Date | 2018-08-10 13:58 +0200 |
| Subject | przyjazne linki bez htaccess |
| Message-ID | <qkz4183nwe89$.dlg@tyczka.com> |
Witam, Czy jest sposób w PHP, żeby nie korzystając z mod rewrite uzyskać taki efekt, że wywołany adres np.: http://x.y.z/5c80155282f9dcb396909a03616 zostanie obsłużony jakby to było zawołanie: http://x.y.z/?param=5c80155282f9dcb396909a03616 czyli index.php i parametr w get? -- pozdrawiam Roman Tyczka
[toc] | [next] | [standalone]
| From | Borys Pogoreło <borys@pl.edu.leszno> |
|---|---|
| Date | 2018-08-10 23:10 +0200 |
| Message-ID | <ahszpuaogdw9.60575zzqatpt$.dlg@40tude.net> |
| In reply to | #15811 |
Dnia Fri, 10 Aug 2018 13:58:31 +0200, Roman Tyczka napisał(a): > Czy jest sposób w PHP, żeby nie korzystając z mod rewrite uzyskać taki > efekt, że wywołany adres np.: > > http://x.y.z/5c80155282f9dcb396909a03616 Jedynie coś takiego: http://x.y.z/index.php/5c80155282f9dcb396909a03616 I parsowanie REQUEST_URI -- Borys Pogoreło borys(#)leszno,edu,pl
[toc] | [prev] | [next] | [standalone]
| From | Roman Tyczka <noemail@because.no> |
|---|---|
| Date | 2018-09-06 11:39 +0200 |
| Message-ID | <1tx1ewj3x5wzy$.dlg@tyczka.com> |
| In reply to | #15813 |
On Fri, 10 Aug 2018 23:10:06 +0200, Borys Pogoreło wrote:
> Dnia Fri, 10 Aug 2018 13:58:31 +0200, Roman Tyczka napisał(a):
>
>> Czy jest sposób w PHP, żeby nie korzystając z mod rewrite uzyskać taki
>> efekt, że wywołany adres np.:
>>
>> http://x.y.z/5c80155282f9dcb396909a03616
>
> Jedynie coś takiego:
>
> http://x.y.z/index.php/5c80155282f9dcb396909a03616
>
> I parsowanie REQUEST_URI
Ostatecznie użyłem mod rewrite i uzyskałem link typu:
http://x.y.z/5c80155282f9dcb396909a03616
i w skrypcie odczytuję REQUEST_URI.
Taki mam htaccess:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteRule (.*) /getfile.php?url=$1 [END]
Ale teraz mam problem, że np. bootstrap mi durnieje i tak osadzony plik
styli:
<link href="app/bootstrap/css/bootstrap.min.css" rel="stylesheet"
type="text/css">
się nie wczytuje a przeglądarka w logu sypie błędem:
Arkusz stylów https://x.y.z/app/bootstrap/css/bootstrap.min.css nie został
wczytany, ponieważ zawarta deklaracja typu MIME tego arkusza: „text/html”
nie jest zgodna z typem „text/css”
Co prawda komunikat wskazuje na typ pliku, ale wynika to chyba z tego, że
te ścieżki wszystkie są przez modrewrite przeorane i prowadzą do tego
głównego pliku, czy to przyczyna?
Co robię źle i jak z tego wybrnąć? Może plik htaccess mam błędny? Jak
zrobić, żeby pliki styli i inne były pomijane przy tym przekierowaniu
linka?
--
pozdrawiam
Roman Tyczka
[toc] | [prev] | [next] | [standalone]
| From | Roman Tyczka <noemail@because.no> |
|---|---|
| Date | 2018-09-06 12:05 +0200 |
| Message-ID | <1cmk7e0r5au4z$.dlg@tyczka.com> |
| In reply to | #15815 |
On Thu, 6 Sep 2018 11:39:49 +0200, Roman Tyczka wrote:
> Ostatecznie użyłem mod rewrite i uzyskałem link typu:
>
> http://x.y.z/5c80155282f9dcb396909a03616
>
> i w skrypcie odczytuję REQUEST_URI.
>
> Taki mam htaccess:
>
> RewriteEngine On
> RewriteCond %{HTTPS} !=on
> RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
> RewriteRule (.*) /getfile.php?url=$1 [END]
>
>
> Ale teraz mam problem, że np. bootstrap mi durnieje i tak osadzony plik
> styli:
>
> <link href="app/bootstrap/css/bootstrap.min.css" rel="stylesheet"
> type="text/css">
>
> się nie wczytuje a przeglądarka w logu sypie błędem:
Diagnoza była poprawna, moja reguła wszystkie odnośniki puszczała w maliny
i plik css czy JS stawał się wewnętrznie plikiem html :-)
Jako, że szczęśliwie wszystkie pliki dodatkowe są zakopane w podkatalogu
/app to po dodaniu drugiej reguły problem zniknął:
RewriteRule (app/.*) /$1 [END]
RewriteRule (.*) /getfile.php?url=$1 [END]
Czy to poprawne rozwiązanie czy inaczej się to robi?
ps. gdyby pliki były na tym samym poziomie (w roocie) to musiałbym chyba
każdy plik osobną regułą chwytać, lub grupami czyli pliki css/JS/GIF/JPG
itd. Się zachciało przyjaznego linka ;-)
--
pozdrawiam
Roman Tyczka
[toc] | [prev] | [next] | [standalone]
| From | Borys Pogoreło <borys@pl.edu.leszno> |
|---|---|
| Date | 2018-09-06 22:42 +0200 |
| Message-ID | <nfft8ua0hzdm$.224mjkcbpfgv.dlg@40tude.net> |
| In reply to | #15816 |
Dnia Thu, 6 Sep 2018 12:05:31 +0200, Roman Tyczka napisał(a): > RewriteRule (app/.*) /$1 [END] > RewriteRule (.*) /getfile.php?url=$1 [END] > > Czy to poprawne rozwiązanie czy inaczej się to robi? Wystarczy RewriteCond !-f -- Borys Pogoreło borys(#)leszno,edu,pl
[toc] | [prev] | [next] | [standalone]
| From | Roman Tyczka <noemail@because.no> |
|---|---|
| Date | 2018-09-07 08:36 +0200 |
| Message-ID | <jdwr3kvexu0s.dlg@tyczka.com> |
| In reply to | #15817 |
On Thu, 6 Sep 2018 22:42:48 +0200, Borys Pogoreło wrote:
>> RewriteRule (app/.*) /$1 [END]
>> RewriteRule (.*) /getfile.php?url=$1 [END]
>>
>> Czy to poprawne rozwiązanie czy inaczej się to robi?
>
> Wystarczy RewriteCond !-f
Masz na myśli?
RewriteCond %{REQUEST_FILENAME} !-f
--
pozdrawiam
Roman Tyczka
[toc] | [prev] | [next] | [standalone]
| From | Roman Tyczka <noemail@because.no> |
|---|---|
| Date | 2018-09-07 10:40 +0200 |
| Message-ID | <1e0uxtxkqye99$.dlg@tyczka.com> |
| In reply to | #15818 |
On Fri, 7 Sep 2018 08:36:52 +0200, Roman Tyczka wrote:
>>> RewriteRule (app/.*) /$1 [END]
>>> RewriteRule (.*) /getfile.php?url=$1 [END]
>>>
>>> Czy to poprawne rozwiązanie czy inaczej się to robi?
>>
>> Wystarczy RewriteCond !-f
>
> Masz na myśli?
>
> RewriteCond %{REQUEST_FILENAME} !-f
Chyba nie bardzo, bo to generuje znowu problemy z plikami, chce je brać z
adresu np.:
https://x.y.z/5c80155282f9dcb396909a03616/app/bootstrap/css/bootstrap.min.css"
czyli dodaje "przyjazny" link do adresu.
--
pozdrawiam
Roman Tyczka
[toc] | [prev] | [next] | [standalone]
| From | Borys Pogoreło <borys@pl.edu.leszno> |
|---|---|
| Date | 2018-09-07 13:03 +0200 |
| Message-ID | <1liuwmje0wdt8.1xbz30m4ur5yr$.dlg@40tude.net> |
| In reply to | #15819 |
Dnia Fri, 7 Sep 2018 10:40:29 +0200, Roman Tyczka napisał(a): > https://x.y.z/5c80155282f9dcb396909a03616/app/bootstrap/css/bootstrap.min.css" > > czyli dodaje "przyjazny" link do adresu. Fakt. No to najlepiej tak jak rePeter zaproponował. -- Borys Pogoreło borys(#)leszno,edu,pl
[toc] | [prev] | [next] | [standalone]
| From | rePeter <no@spam.no> |
|---|---|
| Date | 2018-09-07 11:08 +0200 |
| Message-ID | <20180907110827.6fa62857@spam.no> |
| In reply to | #15816 |
Thu, 6 Sep 2018 12:05:31 +0200
Roman Tyczka <noemail@because.no> napisał(a):
> On Thu, 6 Sep 2018 11:39:49 +0200, Roman Tyczka wrote:
>
> > Ostatecznie użyłem mod rewrite i uzyskałem link typu:
> >
> > http://x.y.z/5c80155282f9dcb396909a03616
> >
> > i w skrypcie odczytuję REQUEST_URI.
> >
> > Taki mam htaccess:
> >
> > RewriteEngine On
> > RewriteCond %{HTTPS} !=on
> > RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
> > RewriteRule (.*) /getfile.php?url=$1 [END]
> >
> >
> > Ale teraz mam problem, że np. bootstrap mi durnieje i tak osadzony plik
> > styli:
> >
> > <link href="app/bootstrap/css/bootstrap.min.css" rel="stylesheet"
> > type="text/css">
> >
> > się nie wczytuje a przeglądarka w logu sypie błędem:
>
> Diagnoza była poprawna, moja reguła wszystkie odnośniki puszczała w maliny
> i plik css czy JS stawał się wewnętrznie plikiem html :-)
>
> Jako, że szczęśliwie wszystkie pliki dodatkowe są zakopane w podkatalogu
> /app to po dodaniu drugiej reguły problem zniknął:
>
> RewriteRule (app/.*) /$1 [END]
> RewriteRule (.*) /getfile.php?url=$1 [END]
>
> Czy to poprawne rozwiązanie czy inaczej się to robi?
>
> ps. gdyby pliki były na tym samym poziomie (w roocie) to musiałbym chyba
> każdy plik osobną regułą chwytać, lub grupami czyli pliki css/JS/GIF/JPG
> itd. Się zachciało przyjaznego linka ;-)
>
można
RewriteCond %{REQUEST_URI} !\.(css|js|gif|jpe?g|png|ico|pdf)$
RewriteRule (.*) /getfile.php?url=$1
albo w przypadku większej złożoności reguł wykorzystać skok.
--
pozdrawiam, Peter
[toc] | [prev] | [next] | [standalone]
| From | Roman Tyczka <noemail@because.no> |
|---|---|
| Date | 2018-09-07 13:15 +0200 |
| Message-ID | <v4v4gw52rmlo$.dlg@tyczka.com> |
| In reply to | #15820 |
On Fri, 7 Sep 2018 11:08:27 +0200, rePeter wrote:
>> Jako, że szczęśliwie wszystkie pliki dodatkowe są zakopane w podkatalogu
>> /app to po dodaniu drugiej reguły problem zniknął:
>>
>> RewriteRule (app/.*) /$1 [END]
>> RewriteRule (.*) /getfile.php?url=$1 [END]
>>
>> Czy to poprawne rozwiązanie czy inaczej się to robi?
>>
>> ps. gdyby pliki były na tym samym poziomie (w roocie) to musiałbym chyba
>> każdy plik osobną regułą chwytać, lub grupami czyli pliki css/JS/GIF/JPG
>> itd. Się zachciało przyjaznego linka ;-)
> można
> RewriteCond %{REQUEST_URI} !\.(css|js|gif|jpe?g|png|ico|pdf)$
> RewriteRule (.*) /getfile.php?url=$1
To chyba moje pierwsze rozwiązanie zgrabniejsze (przy założeniu, że
wszystko wsadzone w /app) :-)
Choć nie wiem jak się oba przekładają na wydajność po stronie serwera.
Tak czy owak dzięki za kolejny pomysł.
> albo w przypadku większej złożoności reguł wykorzystać skok.
Skok czyli? Jakis exampelek?
--
pozdrawiam
Roman Tyczka
[toc] | [prev] | [next] | [standalone]
| From | rePeter <no@spam.no> |
|---|---|
| Date | 2018-09-07 13:33 +0200 |
| Message-ID | <20180907133359.60b1ae21@spam.no> |
| In reply to | #15822 |
Fri, 7 Sep 2018 13:15:32 +0200
Roman Tyczka <noemail@because.no> napisał(a):
> On Fri, 7 Sep 2018 11:08:27 +0200, rePeter wrote:
>
> >> Jako, że szczęśliwie wszystkie pliki dodatkowe są zakopane w podkatalogu
> >> /app to po dodaniu drugiej reguły problem zniknął:
> >>
> >> RewriteRule (app/.*) /$1 [END]
> >> RewriteRule (.*) /getfile.php?url=$1 [END]
> > RewriteCond %{REQUEST_URI} !\.(css|js|gif|jpe?g|png|ico|pdf)$
> > RewriteRule (.*) /getfile.php?url=$1
>
> To chyba moje pierwsze rozwiązanie zgrabniejsze
Natomiast to jest bardziej uniwersalne i dodatkowo udostępnia wyłącznie wyszczególnione
pliki.
> Skok czyli? Jakis exampelek?
np. przeskok jednej reguły [S=1],
w tym wypadku przekierowania na https, jeśli sobie lokalnie testuję
RewriteCond %{HTTP_HOST} localhost [or]
RewriteCond %{REMOTE_ADDR} ^10.11.12.
RewriteRule .* - [S=1]
RewriteCond %{HTTPS} off [or]
RewriteCond %{HTTP_HOST} !^www.domena$
RewriteRule ^(.*)$ https://www.domena/$1 [R=301,L]
--
pozdrawiam, Peter
[toc] | [prev] | [standalone]
Back to top | Article view | pl.comp.lang.php
csiph-web