konto usunięte

Temat: przyjazne linki przy pomocy mod_rewrite czy php

Witam.

Postanowiłem zbudować większy serwis wielojęzyczny.
Chcę skorzystać z przyjaznych linków.

I teraz nasuwa się pytanie, co jest wydajniejsze, obsługa linków przy pomocy mod_rewrite czy przesyłanie całego linku do PHP i następnie w linku sprawdzanie np jakimś preg_match?

konto usunięte

Temat: przyjazne linki przy pomocy mod_rewrite czy php

Jak to ma być większy serwis wielojęzyczny to czy nie lepiej użyć jakiegoś frameworka na przykład Zenda? W zendzie masz "wbudowaną" obsługę przyjaznych linków
Mateusz Tracz

Mateusz Tracz Programista

Temat: przyjazne linki przy pomocy mod_rewrite czy php

Dokładnie, nawet te mniejsze frameworki jak np. kohana mają obsługę fajnego routingu.

konto usunięte

Temat: przyjazne linki przy pomocy mod_rewrite czy php

To nie jest odpowiedź na moje pytanie, pytaniem było co jest wydajniejsze z tych dwóch opcji.

Na jakiej metodzie opiera się ta obsługa linków w wymienionych frameworkach?

konto usunięte

Temat: przyjazne linki przy pomocy mod_rewrite czy php

Sebastian Poddubiuk:
To nie jest odpowiedź na moje pytanie, pytaniem było co jest wydajniejsze z tych dwóch opcji.

Bardziej elastyczny jest język programowania, korzystając z rewritów musisz się ich nauczyć i mieć je na serwerze i dodatkowo jesteś skazany na apacha.
Przy dobrym kombinowaniu wydajność będzie podobna.

Na jakiej metodzie opiera się ta obsługa linków w wymienionych frameworkach?

Na pregach i budowaniu wyrażeń reguralnych.

konto usunięte

Temat: przyjazne linki przy pomocy mod_rewrite czy php

Na pregach i budowaniu wyrażeń reguralnych.
Czyli wszystkie zapytania są przekierowywane do PHP?

konto usunięte

Temat: przyjazne linki przy pomocy mod_rewrite czy php

Prawie wszystkie :) do plików takich jak obrazki css, js normalnie się dostajesz reszta idzie przez framework. Co do wydajności w tym przypadku taka rzecz jest sprawą co najmniej drugorzędną.

konto usunięte

Temat: przyjazne linki przy pomocy mod_rewrite czy php

tylko i wylacznie php.

more flexible.
Łukasz Ważny

Łukasz Ważny winning doesn't
really matter as
long as you win

Temat: przyjazne linki przy pomocy mod_rewrite czy php

Sebastian Poddubiuk:
Witam.

Postanowiłem zbudować większy serwis wielojęzyczny.
Chcę skorzystać z przyjaznych linków.

I teraz nasuwa się pytanie, co jest wydajniejsze, obsługa linków przy pomocy mod_rewrite czy przesyłanie całego linku do PHP i następnie w linku sprawdzanie np jakimś preg_match?

ztestuj sobie :)
Marcin P.

Marcin P. Zakamuflowany
programista

Temat: przyjazne linki przy pomocy mod_rewrite czy php

Sebastian Poddubiuk:
To nie jest odpowiedź na moje pytanie, pytaniem było co jest wydajniejsze z tych dwóch opcji.
Kiepski programista za pomocą obu rozwiązań jest w stanie zbudować niewydajne rozwiązanie. Dobry programista korzysta z frameworków ;)

Ja osobiście korzystam z obu rozwiązań jednocześnie...
Wojciech K.

Wojciech K. realizator pomysłów
własnych

Temat: przyjazne linki przy pomocy mod_rewrite czy php

Sebastian Poddubiuk:
I teraz nasuwa się pytanie, co jest wydajniejsze, obsługa linków przy pomocy mod_rewrite czy przesyłanie całego linku do
PHP i następnie w linku sprawdzanie np jakimś preg_match?

to drugie jest dużo bardziej elastyczne.

wystarczą 3 linijki w ustawieniach apacza:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php [QSA]

resztę załatwiasz analizując $_SERVER['REQUEST_URI'] w PHPie.
Marcin Pilśniak:
Dobry programista korzysta z frameworków ;)

Sebastian nie pytał, kto jest dobrym a kto złym programistą ;P
wtedy odpowiedź byłaby taka, że "dobrzy programiści" to grupa do której zalicza się autor danej wypowiedzi, a źli, to ci pozostali :)

konto usunięte

Temat: przyjazne linki przy pomocy mod_rewrite czy php

Warto wzorować się na innych popularnych i otwartych projektach, na którymi czuwa grono specjalistów.

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

konto usunięte

Temat: przyjazne linki przy pomocy mod_rewrite czy php

Zgadzam się również z przedmówcami, którzy preferują obsługę w php.

Dodatkowa zaleta takiego rozwiązania to też np. łatwiejsza migracja
na inny serwer www np. nginx, który defaultowo nie obsługuje htaccessa i trzeba regułki przepisywać. Im ich mniej tym lepiej.
Alan Gabriel B.

Alan Gabriel B. Software Engineer,
IFX

Temat: przyjazne linki przy pomocy mod_rewrite czy php

Przejrzałem źródła Symfony 2 i wygląda na to, że jest ona w stanie wygenerować rewrite dla Apache'a.

konto usunięte

Temat: przyjazne linki przy pomocy mod_rewrite czy php

A jeszcze lepiej zrobić coś takiego (moim zdaniem):

<IfModule mod_expire.c>
ExpiresDefault "access plus 4 hours"
ExpiresByType application/javascript A900
ExpiresByType application/x-javascript A900
ExpiresByType text/javascript A900
ExpiresByType text/html A90
ExpiresByType text/xml A90
ExpiresByType text/css A900
ExpiresByType text/plain A62
ExpiresByType image/gif A14400
ExpiresByType image/jpg A14400
ExpiresByType image/jpeg A14400
ExpiresByType image/png A14400
ExpiresByType image/bmp A14400
ExpiresByType application/x-shockwave-flash A3600
</IfModule>

<IfModule mod_rewrite.c>

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} \.(js|css)$
RewriteRule (.*)\.(.*) gzip.php?file=$1&ex=$2 [QSA,L]
RewriteCond %{REQUEST_URI} \.(ico|gif|jpg|png)$
RewriteRule (.*) $1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*?)(\.html)?$ index.php?url=$1 [QSA,L]
</IfModule>

1. Mod expire (o ile uaktywniony w apache'u) dodaje nam czas cache'owania elementu

2. Pierwszy RewriteRule przekierowuje do pliku gzip odpowiedzialnego za pakowanie plików js i css

3. Pliki graficzne zostają automatycznie serwowane bez obsługi ze strony symfony/zend/cokolwiek (można dodać pliki pdf, zip, etc

4. Całą resztę przerzuca do twojego systemu gdzie zapytanie o stronę (czyli to co jest po domenie) zapisane jest w zmiennej $_GET['url'[
Rafał Gajewski

Rafał Gajewski PRODUCT MANAGER

konto usunięte

Temat: przyjazne linki przy pomocy mod_rewrite czy php

Rafał Gajewski:
a jak zamienić http://mojastrona.pl/index.php?page=page/omnie

na

http://mojastrona.pl/omnie

i co jest najlepsze dla pozycjoowania:
http://mojastrona.pl/omnie
http://mojastrona.pl/omnie/
http://mojastrona.pl/omnie.php
http://mojastrona.pl/omnie.html

zrób sobie tablicę w stylu:
$config['omnie']=array(
'controller'=>'page',
'action'=>'omnie',
);
potem explode na $_GET['page'] i pierwszy param szukasz w tablicy.
Regexy nie są potrzebne do tego typu routingu :)
Co do końcówek typu /cos.html czy /cos.php
Ustaw w configu (ew zmiennej/stałej w kodzie) Ext='.html'
potem substr z strrpos aby uciąć końcówkę przed routingiem.

konto usunięte

Temat: przyjazne linki przy pomocy mod_rewrite czy php

http://dev.horde.org/routes/

Z wyrazami szacunku,
Przemysław Czekaj.
Rafał Gajewski

Rafał Gajewski PRODUCT MANAGER

Temat: przyjazne linki przy pomocy mod_rewrite czy php

załatwiłem to tak:

w pliku .htaccess wpisałem:

RewriteEngine On
RewriteBase /
RewriteRule ^/?(.*)/$ index.php?page=$1 [NC,L]

a w sekcji z linkami

<li><a href="/page/omnie/">O Mnie</a></li>
....

Działa

Linki wyglądają zamiast

mojastrona.pl/index.php?page=page/omnie

tak:

mojastrona.pl/page/omnie/

ma ktoś pomysła jak wykluczyć /page/ ?

Temat: przyjazne linki przy pomocy mod_rewrite czy php

z punktu widzenia SEO, wersje wielojezyczne warto miec na osobnych subdomenach co troche komplikuje routing frameworka, z reguly trzeba kilku zmian tu i tam zeby najpierw uruchamiany byl router hostname a dopiero pozniej rozwiazywana byla sciezka

Następna dyskusja:

Interakcja z systemem trans...




Wyślij zaproszenie do