Autor | Zpráva | ||
---|---|---|---|
one Profil |
#1 · Zasláno: 25. 7. 2007, 14:40:37 · Upravil/a: one
Čau, potřebuji pomoct s mod_rewrite, potřebuji z odkazu example.com/kontakt.php dostat example.com/ kontakt
ale s tím, že když zadám kontakt.php se prostě vždy adresa přepíše na kontakt, a ne aby fungovalo jak kontakt.php tak i kontakt ještě by bylo dobré aby se to automaticky přepsalo u všech souborů s příponou php, našel jsem tento script: RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)/$ $1.php [L] RewriteCond %{REQUEST_URI} !.[[:alnum:]]+$ RewriteRule ^(.+[^/])$ /$1/ [R=301] jenže ten nesplňuje moje požadavky půjde to nějak? dík |
||
temistokles Profil |
#2 · Zasláno: 25. 7. 2007, 14:58:44
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} .php$ RewriteRule ^(.*).php$ /$1/ [R=301, L] RewriteRule ^(.*)$ $1.php [L] Toto by IMHO šlo, nemal som možnosť overiť :D |
||
one Profil |
#3 · Zasláno: 25. 7. 2007, 15:51:40 · Upravil/a: one
hm, háže to 500, v logu to píše RewriteCond: bad flag delimiters, a to většinou háže, když tam chybí nějaká závorka, nebo tak je tam nějaká mezera a to tady nevidím, tak nevím kde je problém, ale i tak dík ;)
|
||
temistokles Profil |
#4 · Zasláno: 25. 7. 2007, 17:19:52
Pred bodky (".") daj lomítka.
|
||
one Profil |
#5 · Zasláno: 25. 7. 2007, 17:34:41 · Upravil/a: one
temistokles
stále stejný problém :( a píše to pořád to samé ty jsi to zkoušel? ale u mě by neměl být problém, ostatní pravidla mi fungují... |
||
temistokles Profil |
#6 · Zasláno: 25. 7. 2007, 17:43:36
one
Neskúšal, nie som doma. |
||
one Profil |
#7 · Zasláno: 25. 7. 2007, 18:33:08
temistokles
Aha, tak bych rád chtěl někoho poprosit, aby to otestoval, protože už vážně nevim, kde může být chyba, díky |
||
one Profil |
#8 · Zasláno: 26. 7. 2007, 14:39:46
pomůžete někdo prosím?
|
||
Kajman_ Profil * |
#9 · Zasláno: 26. 7. 2007, 22:14:03
|
||
one Profil |
#10 · Zasláno: 27. 7. 2007, 10:00:05
Kajman_
dík, tak jsem použil tohle řešení: RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^.*$ $0.php [L] RewriteCond %{ENV:REDIRECT_STATUS} ^$ RewriteCond %{REQUEST_FILENAME} -f RewriteRule ^(.+).php$ $1 [L, R=301, NE] na wz.cz běží ok, ale na localhostu mi to háže 500 a v logu je opět RewriteCond: bad flag delimiters.. nevíte proč? musí se ještě něco nastavit? nejspíše je to stejný problém jako poslední přispívající v té diskusi, kterému se ale nedostala odpověď: http://www.dgx.cz/trine/item/hadanka-znate-mod-rewrite#comment-11492 |
||
Kajman_ Profil * |
#11 · Zasláno: 27. 7. 2007, 10:27:45
Na localhostu asi težko budete potřebovat přesměrování pro zachování externích odkazů, tak bych jen umazal ty poslední tři řádky :-)
Jinak bych zkusil novější apache a pokud stále nebude %{ENV:REDIRECT_STATUS} k dispozici, tak občas používám nějaký pomocný parametr. RewriteEngine on RewriteBase / RewriteCond %{QUERY_STRING} ^rw=1 RewriteRule ^.*\.php$ - [L] RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^.*$ $0.php?rw=1 [L,QSA] RewriteCond %{REQUEST_FILENAME} -f RewriteCond %{REQUEST_METHOD} GET RewriteRule ^(.+)\.php$ $1 [L, R=301, NE] Nebo tak nějak. |
||
one Profil |
#12 · Zasláno: 27. 7. 2007, 10:41:21
Kajman_
Dík, no omlouvám se, mod_rewrite je pro mě španělská vesnice :) |
||
one Profil |
#13 · Zasláno: 27. 7. 2007, 10:45:23 · Upravil/a: one
a ještě bych měl jeden dotaz ohledně mod_rewrite:
jak by vypadalo pravidlo, aby se z example.com/soubory/4gdfg6/test.jpg?smaz=51659465 přesměrovalo na smazat?soubor=$2&id=$1&kód=$3 dík |
||
one Profil |
#14 · Zasláno: 28. 7. 2007, 00:52:44
pomůžete, prosím? to je poslední dotaz ohledně mod_rewrite, ostatní už jsem vyřešil...děkuji
|
||
bukaj Profil |
#15 · Zasláno: 28. 7. 2007, 07:17:06 · Upravil/a: bukaj
mohlo by fungovat:
RewriteRule ^soubory/([^/]+)/([^/\.]+\.\w{2,4})?smaz=(.*)$ smazat.php?soubor=$2&id=$1&kod=$3 |
||
one Profil |
#16 · Zasláno: 28. 7. 2007, 10:46:41
bukaj
Hm, nefunguje mi to, jenže to je nejspíš moje chyba, protože já předtím mám podobné pravidlo na stažení souboru, tudíž když zadám example.com/soubory/4gdf81/test.jpg?smaz=45451265123 tak mi to nabídné soubor ke stažení, zde je kód: RewriteRule ^soubory/(.*)/(.*)?smaz=(.*)$ smaz.php?soubor=$2&id=$1&kod=$3 RewriteRule ^soubory/(.*)/(.*)$ /stahni.php?soubor=$2&id=$1 ten tvůj jsem tam samozřejmě také zkoušel, ale stejný problém, nenapadá mě, jak to ošetřit, aby to rozeznalo co přesně chci...díky |
||
one Profil |
#17 · Zasláno: 28. 7. 2007, 22:18:22 · Upravil/a: one
uz mi to prijde blbe, ale musim prispevek posunout nahoru, aby se na nej nezapomelo :)
zkousel jsem jiz vice metod, ale bohuzel mi to stale nejde :/ |
||
one Profil |
#18 · Zasláno: 29. 7. 2007, 23:10:48
najde se nějaká dobrá duše, co mi s tímto problémem pomůže? děkuji
|
||
Kajman_ Profil * |
#19 · Zasláno: 30. 7. 2007, 22:23:23
Když si přečtěte manuál k mod rewrite, tak určitě najdete zmínku, že věci za otazníkem nejdou testovat v RewriteRule!
RewriteCond %{QUERY_STRING} ^smaz=([0-9]+)$ RewriteRule ^soubory/([^/]+)/([^/]+)$ smazat.php?soubor=$2&id=$1&kod=%1 [L] |
||
one Profil |
#20 · Zasláno: 30. 7. 2007, 22:58:40
Kajman_
Omlouvám se, a přiznávám se, že tentokrát jsem si manuál nepřečetl, ale děkuji, že jste mě na tohle upozornil, teď to funguje, jak má... |
||
Časová prodleva: 18 let
|
0