Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > pl.comp.lang.php > #15811 > unrolled thread

przyjazne linki bez htaccess

Started byRoman Tyczka <noemail@because.no>
First post2018-08-10 13:58 +0200
Last post2018-09-07 13:33 +0200
Articles 11 — 3 participants

Back to article view | Back to pl.comp.lang.php


Contents

  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

#15811 — przyjazne linki bez htaccess

FromRoman Tyczka <noemail@because.no>
Date2018-08-10 13:58 +0200
Subjectprzyjazne 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]


#15813

FromBorys Pogoreło <borys@pl.edu.leszno>
Date2018-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]


#15815

FromRoman Tyczka <noemail@because.no>
Date2018-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]


#15816

FromRoman Tyczka <noemail@because.no>
Date2018-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]


#15817

FromBorys Pogoreło <borys@pl.edu.leszno>
Date2018-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]


#15818

FromRoman Tyczka <noemail@because.no>
Date2018-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]


#15819

FromRoman Tyczka <noemail@because.no>
Date2018-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]


#15821

FromBorys Pogoreło <borys@pl.edu.leszno>
Date2018-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]


#15820

FromrePeter <no@spam.no>
Date2018-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]


#15822

FromRoman Tyczka <noemail@because.no>
Date2018-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]


#15823

FromrePeter <no@spam.no>
Date2018-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