Právě je 29 bře 2024 08:26

Všechny časy jsou v UTC + 1 hodina




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 8 ] 
Autor Zpráva
 Předmět příspěvku: mod_rewrite v .htaccess
PříspěvekNapsal: 26 říj 2012 06:14 

Registrován:
10 říj 2012 08:46
Příspěvky:
7
Dobrý den,
potřeboval bych nahrazovat URL např.: http://neco.cz/neco/index.php?page=neco za http://neco.cz/neco/neco

V .htaccess mám:
Kód:
DirectoryIndex index.php
<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php?page=$1 [L,QSA]
</IfModule>

<IfModule mod_php5.c>
  php_value error_reporting 6143
  php_flag display_errors 0
</IfModule>


Dotčená část URL se ale nenahrazuje - prosím o radu.
Předem díky


Nahoru
 Profil  
 
 Předmět příspěvku: Re: mod_rewrite v .htaccess
PříspěvekNapsal: 28 říj 2012 14:09 
C4 podpora
C4 podpora

Registrován:
01 črc 2009 11:23
Příspěvky:
44
Záleží na tom, jak chcete aby se přepisování chovalo.

Vaše direktivy jsou funkční v případě, že .htaccess je na serveru umístěn ve složce /neco.

Pokud by měly fungovat z kořenu pro složku /neco, je nutné ji tam připsat:

Kód:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^neco/(.*)$ neco/index.php?page=$1 [L,QSA]


Další možnost je, aby apache přímo z kořenu nahrazoval url způsobem:

/neco => /index.php?page=neco
/neco1/neco => /neco1/index.php?page=neco
/neco1/neco2/neco => /neco1/neco2/index.php?page=neco

tam lze použít tyto direktivy:

Kód:
RewriteCond %{DOCUMENT_ROOT}/$1$2 !-f
RewriteCond %{DOCUMENT_ROOT}/$1$2 !-d
RewriteCond %{DOCUMENT_ROOT}/$1index.php -f
RewriteRule ^((?:[^/]+/)*)([^/]+)$ $1index.php?page=$2 [L,QSA]


Pokud chcete poradit víc, napište jak přesně by se to mělo chovat v kontextu nad/podsložek.

_________________
Adam Chyský
Webhosting C4
http://www.c4.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: mod_rewrite v .htaccess
PříspěvekNapsal: 28 říj 2012 18:49 

Registrován:
10 říj 2012 08:46
Příspěvky:
7
Díky moc za radu.
Nefunguje mi to ale ani v kořenu. A to právě nějak zatím nejsem schopen pochopit proč.

.htaccess mám v kořenu a v prvním plánu mi šlo hlavně o to, aby se URL přepisovala z kořenu zatím jen pro http://web.cz/index.php?page=neco, protože web má jen jednu podsložku a ta vlastní index.php (http://web.cz/podslozka/index.php), kde bude nahrazování URL potřeba a tu jsem chtěl řešit, až bude fungovat přepis v kořenu.

Měl jsem za to, že můj zápis v .htaccess by měl pro kořen fungovat, ale nějak se nezadařilo.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: mod_rewrite v .htaccess
PříspěvekNapsal: 28 říj 2012 18:56 

Registrován:
10 říj 2012 08:46
Příspěvky:
7
Jo, a nechtěl jsem, aby se nahrazování dotklo adres obrázků, případně dokumentů, které se ukládají do jiných podsložek - aby se pak netáhly přes index.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: mod_rewrite v .htaccess
PříspěvekNapsal: 29 říj 2012 00:33 
C4 podpora
C4 podpora

Registrován:
01 črc 2009 11:23
Příspěvky:
44
A víte jistě, že je mod_rewrite funkční? Co se stane, když tam dáte jen jednoduchou direktivu:

Kód:
RewriteEngine on
RewriteRule ^(.*)$ index.php?param=$1 [L,QSA]


a do indexu:

Kód:
<?php
print_r($_GET);
?>


Zobrazí to něco při různých URL?

Jaky je to server? Linux? Windows? Pokud to máte u sebe na PC, většinou ty distribuce apache nemají mod_rewrite v základu aktivní.

_________________
Adam Chyský
Webhosting C4
http://www.c4.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: mod_rewrite v .htaccess
PříspěvekNapsal: 29 říj 2012 04:43 

Registrován:
10 říj 2012 08:46
Příspěvky:
7
Funkční je, zkusil jsem i otestovat podle Vaší rady RewriteRule ^(.*)$ index.php?param=$1 [L,QSA] a např. se ztratilo stylování.

Jedná se o web autoservis-evo.cz s umístěním tady - na C4.
Na testovacím serveru tyhle věci právě vůbec neřeším, ale asi začnu.

>>>To určitě bude zase nějaká prkotina, kterou nevidím, protože stavím raketoplán... :roll:


Nahoru
 Profil  
 
 Předmět příspěvku: Re: mod_rewrite v .htaccess
PříspěvekNapsal: 30 říj 2012 00:52 
C4 podpora
C4 podpora

Registrován:
01 črc 2009 11:23
Příspěvky:
44
Ty pravidla, která tam máte, jsou funkční, viz. např. adresa:
http://autoservis-evo.cz/index.php?page=servis
pro kterou funguje alias:
http://autoservis-evo.cz/servis

Chce to upravit adresy odkazů, které na té stránce máte, aby používaly tyto aliasové adresy.

Potom ještě můžete chtít přidat 301 přesměrování pro původní adresy na nové, v htaccessu tedy budete mít i pro funkční /bazar s indexem toto:
Kód:
DirectoryIndex index.php
<IfModule mod_rewrite.c>
  RewriteEngine on

  # presmerovani z adres /index.php?page=xxx na /xxx
  RewriteCond %{REQUEST_URI}          ^/index\.php$
  RewriteCond %{QUERY_STRING}         ^page=([^&]*)(&.+)?$
  RewriteCond %{QUERY_STRING}         !noredir
  RewriteRule  ^(bazar/)?index.php$    http://www.autoservis-evo.cz/$1%1?%2     [L,R=301]

  # pravidla pro interni prepis, parametr noredir, aby nedochazelo ke smycce v presmerovani z predchoziho pravidla
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(bazar/)?(.*)$ $1index.php?page=$2&noredir [L,QSA]
</IfModule>

<IfModule mod_php5.c>
  php_value error_reporting 6143
  php_flag display_errors 0
</IfModule>

_________________
Adam Chyský
Webhosting C4
http://www.c4.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: mod_rewrite v .htaccess
PříspěvekNapsal: 30 říj 2012 06:31 

Registrován:
10 říj 2012 08:46
Příspěvky:
7
To je ono!
Nechápu, jak jsem mohl zapomenout na odkazy v kódu.

Díky moc za návod, teď už to určitě pofrčí.

Ještě jednou moc děkuju!!! ;)


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 8 ] 

Všechny časy jsou v UTC + 1 hodina


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
cron
FTP Uploader
Staňte se naším zákazníkem!
Hledáme kolegy
Tvorba web stránek Hosting
Návody pro C4

© 2009-2024 ČESKÝ WEBHOSTING s.r.o. Kontaktní e-mail: forum@c4.cz
Diskuzní fórum využívá technologie: phpBB, phpBB-SEO.com, phpBB.cz