Autor | Zpráva | ||
---|---|---|---|
miro25 Profil * |
#1 · Zasláno: 4. 11. 2010, 17:35:37
Ahojte, potreboval by som poradiť ako nastaviť .htaccess tak aby odstraňoval koncovky v linkách ako je niečo.html alebo niečo.php.
Pozeral som si aj v diskusii nejaké príspevky ale nič mi nefungovalo tak ako by som potreboval. Iba toto čiastočne fungovalo: RewriteRule ^ref ref.html ale to je dosť nepraktické nakoľko by som to musel pre každú súbor nastavovať zvlášť a tiež síce po nastavení tohto funguje link aj bez .html ale funguje aj keď je zadaný. |
||
Davex Profil |
#2 · Zasláno: 4. 11. 2010, 19:58:03 · Upravil/a: Davex
Pravidla pro odstranění přípony ze jména souboru najdeš v komentářích článku Davida Grudla: Hádanka - znáte mod_rewrite?
|
||
miro25 Profil * |
#3 · Zasláno: 4. 11. 2010, 21:18:39
Davex:
Dík za info, použil som tento spôsob a vyzerá, že funguje: RewriteEngine On RewriteBase / # exists file with extension? RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^.*$ $0.php [L] # redirect, but only once RewriteCond %{ENV:REDIRECT_STATUS} ^$ RewriteCond %{REQUEST_FILENAME} -f RewriteRule ^(.+)\.php$ $1 [L,R=301,NE] plus som si tam dal toto na odstraňovanie index-u: RewriteRule ^(.+/)?index\.(html?|php)$ /$1 [R=301,NC,NE,L] Len by som bol rád keby sa mi na to niekto pozrel či v tom nie sú nejaké chyby, lebo ja sa v tom nejak moc nevyznám :). |
||
miro25 Profil * |
#4 · Zasláno: 4. 11. 2010, 21:23:02
Teraz som zistil, že mi prestal fungovať kontaktný formulár. Neodošle nič a ani keď nevyplním polia tak ich neoznačí. Čo samozrejme pred tým fungovalo.
|
||
miro25 Profil * |
#5 · Zasláno: 4. 11. 2010, 21:55:23
Použil som len toto:
RewriteEngine On RewriteBase / # exists file with extension? RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^.*$ $0.php [L] RewriteRule ^(.+/)?index\.(html?|php)$ /$1 [R=301,NC,NE,L] Môže to tak byť. |
||
miro25 Profil * |
#6 · Zasláno: 4. 11. 2010, 21:58:53
Heh tak to asi nie lebo tam mi zas ostane ta koncovka :).
|
||
miro25 Profil * |
#7 · Zasláno: 5. 11. 2010, 22:26:51
No tak ten prvý problém som už ako tak vyriešil ale ešte by ma zaujímalo ako nastaviť jednu vec a to, že keď bude zadaná nejaká adresa, ktorá nie je správna nezobrazilo by chybu 404 ale presmerovalo by užívateľa na hlavnú stránku a to aj pri zadaní nejakého adresáru, ktorý na serveri existuje.
|
||
Keeehi Profil |
#8 · Zasláno: 5. 11. 2010, 22:38:32
Takto?
ErrorDocument 404 http://www.example.com/ |
||
miro25 Profil * |
#9 · Zasláno: 5. 11. 2010, 22:51:08
A sakra to ma mohlo napadnúť :D.
Díík |
||
miro25 Profil * |
#10 · Zasláno: 5. 11. 2010, 23:32:44
Ešte jedna vec ma trápi.
premeniť link www.niečo.sk/index.php?page=home na www.niečo.sk/home.html. No funguje to tak, že na stránke je ten prvý link a po kliknutí naň sa prepíše na ten druhý. No ale mňa by zaujímalo ako to spraviť aby sa už v stránke zobrazil v tom druhom tvare, bez toho aby som ho tam ja musel ručne zadať. použil som na to tento príklad: RewriteEngine On #RewriteBase /adresar RewriteCond %{QUERY_STRING} ^page=([^&]+)$ RewriteRule ^index\.php$ %1.html? [R=301,L] RewriteRule ^([^/]+)\.html index.php?rw=1&page=$1 [L,QSA] ale mám s nim ešte troška problém, lebo mi to po kliknutí na url prerobí odkaz aj s celou cestou servera. A to aj keď zapnem RewriteBase /. |
||
miro25 Profil * |
#11 · Zasláno: 6. 11. 2010, 15:12:47
Vie mi niekto povedať ako upraviť toto tak aby to fungovalo aj bez toho index.php. Lebo ja potrebujem zadávať link ako ?page=niečo
RewriteCond %{QUERY_STRING} ^page=([^&]+)$ RewriteRule ^index\.php$ %1.html? [R=301,L] RewriteRule ^([^/]+)\.html index.php?rw=1&page=$1 [L,QSA] ale mám s nim ešte troška problém, lebo mi to po kliknutí na url prerobí odkaz aj s celou cestou servera. A to aj keď zapnem RewriteBase /. Toto už funguje ako má ale otázka na prevedenie odkazu do pekného formátu stále platí. Lebo neviem ako na to (ak sa to vôbec dá bez databázi) :). |
||
miro25 Profil * |
#12 · Zasláno: 6. 11. 2010, 15:14:00
A ešte som zabudol keby to fungovalo ešte aj tak, že tam nebude na konci dávať to .html
|
||
miro25 Profil * |
#13 · Zasláno: 6. 11. 2010, 16:29:22
Takže sa mi to čiastočne podarilo spraviť:
RewriteEngine On RewriteBase / RewriteCond %{QUERY_STRING} ^page=([^&]+)$ RewriteRule ^(.*)$ %1/? [R=301,L] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^/]+)\/ /?rw=1&page=$1 [L,QSA] RewriteRule ^(.+/)?index\.(html?|php)$ /$1 [R=301,NC,NE,L] teraz mám len problém, že nech zadám čokoľvek za ten link, ktorý mi to spraví tak to funguje a malo by to hodiť hlášku 404. napr: www.niečo.sk/test/ je normálna stránka ale keď zadám www.niečo.sk/test/blabla tak to namisto chyby zobrazí obsah stránky www.niečo.sk/test/. Ak niekto viete kde je problém prosím napíšte,ja sa idem trápiť ďalej. |
||
miro25 Profil * |
#14 · Zasláno: 6. 11. 2010, 16:37:22
Takže sa mi to čiastočne podarilo spraviť:
RewriteEngine On RewriteBase / RewriteCond %{QUERY_STRING} ^page=([^&]+)$ RewriteRule ^(.*)$ %1/? [R=301,L] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^/]+)\/ /?rw=1&page=$1 [L,QSA] RewriteRule ^(.+/)?index\.(html?|php)$ /$1 [R=301,NC,NE,L] teraz mám len problém, že nech zadám čokoľvek za ten link, ktorý mi to spraví tak to funguje a malo by to hodiť hlášku 404. napr: www.niečo.sk/test/ je normálna stránka ale keď zadám www.niečo.sk/test/blabla tak to namisto chyby zobrazí obsah stránky www.niečo.sk/test/. Ak niekto viete kde je problém prosím napíšte,ja sa idem trápiť ďalej. |
||
miro25 Profil * |
#15 · Zasláno: 6. 11. 2010, 17:41:21
Tak sa mi to asi podarilo:
RewriteEngine On RewriteBase / RewriteRule ^(.+/)?index\.(html?|php)$ /$1 [R=301,NC,NE,L] RewriteCond %{QUERY_STRING} ^page=([^&]+)$ RewriteRule ^(.*)$ %1/? [R=301,L] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)/$ ?rw=1&page=$1 [L,QSA] Ak by bol niekto taký dobrý a mi to aspoň skontroloval či tam nemám nejaké chyby, ktoré by mohli začať časom robiť problémy. |
||
Časová prodleva: 13 let
|
0