Autor | Zpráva | ||
---|---|---|---|
Xivanx Profil * |
Zdravím, prošel jsem několik diskuzí a webů s mod rewrite, ale nějak se nemůžu dopátrat správného řešení
potřeboval bych example.com/stranka/ example.com/stranka.php example.com/stranka.html - přesměrovat na example.com/stranka a example.com/stranka předat index.php zkoušel jsem několik variant, a nějak nefungují RewriteEngine on RewriteCond %{REQUEST_FILENAME} -d RewriteCond %{REQUEST_FILENAME} -f RewriteRule ^(.*)$ /index.php?page=$1 [L] RewriteRule ^(.*)\/$ $1 [R,L] RewriteRule ^(.*)\.php$ $1 [R,L] RewriteRule ^(.*)\.html$ $1 [R,L] Díky za pomoc |
||
Davex Profil |
#2 · Zasláno: 12. 9. 2011, 19:15:38
Mělo by to být opačně - nejdřív přesměruj a potom teprve přepisuj. Pro odstranění přípony .php následuj odkaz v tématu jak dostat pryč .php.
|
||
Xivanx Profil * |
po úpravě na
RewriteRule ^(.*)\/$ $1 [R] RewriteRule ^(.*)\.php$ $1 [R] RewriteRule ^(.*)\.html$ $1 [R] RewriteCond %{REQUEST_FILENAME} -d RewriteCond %{REQUEST_FILENAME} -f RewriteRule ^(.*)$ /index.php?page=$1 [L] první tři fungují, ale zbytek ne, tedy 404 :-( |
||
Davex Profil |
#4 · Zasláno: 12. 9. 2011, 19:52:47 · Upravil/a: Davex
Ano, jistě. Před přepisem máš podmínky, které jsou pravdivé pouze pokud by požadované URL bylo existující adresář a zároveň soubor - to nelze nikdy splnit. Asi bys měl chtít přepisovat jen neexistující soubory.
|
||
Xivanx Profil * |
#5 · Zasláno: 12. 9. 2011, 23:00:16
no jakákoliv změna v tom zápisu podmínek vyvolá chybu 500
|
||
Davex Profil |
#6 · Zasláno: 14. 9. 2011, 19:27:22
Xivanx:
„jakákoliv změna v tom zápisu podmínek vyvolá chybu 500“ Jaká změna? |
||
Xivanx Profil * |
Davex:
„Jaká změna?“ na negaci, neexistenci adresáře a souboru RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f Moderátor Chamurappi: Vkládej prosím kódy mezi značky [>pre] a [>/pre] (stačí kliknout na ).
|
||
Davex Profil |
#8 · Zasláno: 15. 9. 2011, 19:40:33 · Upravil/a: Davex
Xivanx:
1) Chyba 500 tam vznikne proto, protože nemáš ukončené první tři přesměrování příznakem [R,L] .
2) Potom ti vznikne další problém ze zacyklením přesměrování, protože jsi nepoužil řešení z odkazu, který jsem posílal - http://latrine.dgx.cz/hadanka-znate-mod_rewrite. |
||
Xivanx Profil * |
#9 · Zasláno: 15. 9. 2011, 21:34:59
Funkční varianta vypadá takhle
jakýkoliv pokus o kontrolu existence končila 500 nebo zacyklováním RewriteEngine on RewriteBase / RewriteRule ^(.+)/$ $1 [L,R=301,NE] RewriteCond %{ENV:REDIRECT_STATUS} ^$ RewriteRule ^(.+)\.php$ $1 [L,R=301,NE] RewriteCond %{ENV:REDIRECT_STATUS} ^$ RewriteRule ^(.+)\.html$ $1 [L,R=301,NE] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ /index.php?page=$1 Děkuji Davex za ochotu a trpělivost mě posunout ke správnému řešení a ne mi ho tu jen tak napsat (myslím to zcela upřimně, neboť mi to přineslo mnohem víc) |
||
Časová prodleva: 15 dní
|
|||
Thak Profil |
#10 · Zasláno: 30. 9. 2011, 15:46:03
Zdravím,
chtěl bych se zeptat, zda nemáte někdo zkušenosti s výkonem při použití mod_rewrite? Jde mi o následující.. předělávali jsme rozsáhlejší web, ale změnila se podstatně jeho struktura. Nyní je potřeba původní již za-indexované stránky přesměrovávat na konkrétní jiné stránky. V praxi to bude znamenat buď "čuňárnu" - fyzicky tam udělat přesměrování v souborech, které tam byly původně, nebo elegantnější řešení - přesměrovávat dotazy pomocí mod_rewrite. Jak ovlivňujě počet záznamů modrewrite výkon stránek / serveru ? Šlo by i s cool url celkem o asi 40řádek / pravidel v mod_rewrite. Díky za odpovědi! |
||
Davex Profil |
#11 · Zasláno: 30. 9. 2011, 18:49:14
Thak:
„Jak ovlivňujě počet záznamů modrewrite výkon stránek / serveru ?“ Kdysi jsem měřil jen počet Deny - .htaccess blokace ČR A Slovenska? s mod_rewrite by to bylo horší.
„Šlo by i s cool url celkem o asi 40řádek / pravidel v mod_rewrite.“ To by mělo být ještě v normální, ale raději bych udělal přesměrování v chybové stránce nebo přímo v aplikaci, když se přijde na to, že obsah pro URL neexistuje. Záleží asi na tom, jak snadno to má být udržovatelné do budoucna. |
||
Thak Profil |
#12 · Zasláno: 30. 9. 2011, 20:58:57
Jasně - tam by se třeba jednoduše dala testovat na chybové stránce URL a přesměrovávat.
Tam jde o to, že je to jen dočasné řešení. Po re-indexaci celých stránek (což nějakou chvíli zabere), to asi odstraníme. Jsou to navíc tak specifické stránky, že si je asi ani nikdo nebude dávat do bookmarků. |
||
Časová prodleva: 13 let
|
0