Portál AbcLinuxu, 30. dubna 2025 16:49
Jak vytvořit krásné adresy? místo /clanek.php?id=5165423 může titulek vypadat třeba takto /o-sipkove-ruzence-5165423.html Nápad pro někoho kdo to nezná, žádost o radu pro zkušenější :)
můj rewrite .htaccess je zde:
RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /lib/main.php?$1 [L,QSA]Nejprve k tomu co již dělší dobu používám... v PHP kodu main.php pak mam něco jako
echo $_SERVER['QUERY_STRING'];což mi hezky píše adresu kterou někdo chtěl vidět. Další zpracování nechám na vás :D
závěrem: snad sem někomu ukázal cestu a doufám že někdo zas eukáže cestu mě
Tiskni
Sdílej:
A aby někdo neřekl že se nesnažim! Ale nefunguje to
RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} ^.jpg RewriteRule ^(.*jpg)$ /lib/main_image.php?$1 [L,QSA] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /lib/main.php?$1 [L,QSA]
a je to!
RewriteEngine on RewriteBase / RewriteRule ^(.*\.jpg)$ /lib/main_image.php?$1 [L,QSA] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /lib/main.php?$1 [L,QSA]
Potřebuji, aby v případě že adresa končí / nebo "html" tak aby se řízení předávalo main.php, v případě jakékoliv jiné přípony aby se řízení předávalo scriptu např. main_blob.phpPodle mě by mělo stačit něco jako:
RewriteRule $(.)+/$ %{DOCUMENT_ROOT}/main.php [L,QSA] RewriteRule $(.)+[.]html$ %{DOCUMENT_ROOT}/main.php [L,QSA] RewriteRule $(.)+[.][^.]+$ %{DOCUMENT_ROOT}/main_blob.php [QSA]Ale to jen střílím od boku, nemám to nijak vyzkoušené.
Nevím, jestli ti to k něčemu bude, ale já na http://saly.primatrida.org/ používám toto:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/page
RewriteRule ^page/(.*)$ /index.php?id=$1 [L]
Tady je pěkný seriál o mod_rewrite. Respektive se mi zdál pěkný po rychlém prohlédnutí. Určitě se to bude hodit pro budoucnost :)
$_SERVER['REQUEST_URI'] možní bude obsahovat to, co tě bude zajímat :)
/o-sipkove-ruzence-5165423.html
mi také nijak krásný nepřijde. Není daleko lepší prosté /o-sipkove-ruzence
?
Jistě, dá to trochu práce navíc, ale když už se snažit o pěkná URL, je lepší to dělat pořádně.
Jistě, dá to trochu práce navíc, ale když už se snažit o pěkná URL, je lepší to dělat pořádně.Ono to dá naopak méně práce, ale někdo se bojí toho, že vyhledávání podle řetězce zpomalí databázové dotazy. Když se ale správně pracuje s indexy, nevidím to tak černě (odhaduji, že stejně nejvíce času spotřebuje připojení na databázový server, autentizace a výběr databáze).
ono tohle netřeba rozebírat já ten příklad sice napsal ale stejně bych to udělal bez toho IDčka
čistě proto, že to je fakt lepší. To jsem spíš chtěl aby bylo to "přepsání" zcela názorné
J.
/2009-03-23-o-sipkove-ruzence
. Pak se muze ze zbytku udelat hash a pouzije se jako druhy klic. Pokud tam nejsou alespon stovky clanku denne, je pravdepodobnost kolize velmi mala a snadno osetritelna zmenou nazvu.
CREATE TABLE T (id INT UNSIGNED AUTO_INCREMENT, idtxt VARCHAR(100) UNIQUE NOT NULL, ... PRIMARY KEY (id))...Pak lze provést dotaz buď podle číselného id anebo podle řetězcového (tj. něco jako
SELECT ... FROM T WHERE idtxt='o-sipkove-ruzence'
).
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.