Zdravím
S Tomášem Bobkem (nefaritusem) jsme se rozhodli vydat nový design stránek http://www.mathatelier.ic.cz. S novým designem chceme zároveň přejít na doménu druhého řádu a předělat linky, ale protože ani jeden neumíme .htaccess, ptáme se zde.
V současné době se články zobrazují na url: /index.php?stranka=ukaz_clanek.php&id=108
To ale není seo friendly a google neindexuje některé články a proto by to chtělo předělat do nějaké slušnější formy, například: clanky/geogebra.html
Na vytváření adres jsem použil funkci seo_url z článku http://programujte.com/index.php?akce=clanek&cl=2006092301-vytvarime-srozumitelne-url-adresy-z-nazvu-clanku. Pokoušel jsem se rozchodit i .htaccess za pomoci fora, googla i článku http://programujte.com/index.php?akce=clanek&cl=2006091901-prakticka-ukazka-zakladniho-pouziti-mod_rewrite-pro-seo-adresy, ale nepodařilo se. Nenašel by se tedy někdo tak ochotný a napsal mi tady kód toho, co mám vložit do .htaccess.
Pokud bych tedy zadal stránku neco.cz/clanky/matika.html, stalo by se z toho index.php?akce=clanek&cisloclanku=matika.html
Pokud by uživatel zadal adresu index.php?akce=clanek&id=xxxx, tak bych ho přesměroval na adresu tvaru clanky/clanek.html asi pomocí Header("Location: clanky/clanek.html"), ale to by vyhledávače měli každou stránku zaindexovanou dvakrát ne?
No prostě, prosím nějakého ochotného člověka o pomoc.
Děkuji
Fórum › Webové servery (Apache, IIS...), .htaccess
Seo adresy
Najdete zde články zabývající se matematikou základních a středních škol a databázi hlavolamů.
Pro vyzkoušení Vaš
To Blujacker :
Docela pěkně je to popsáno na třeba na http://mike.webzdarma.cz/mod_rewrite-a-hezke-url/ + dašlí díly
Hmm, tak se mi podařilo sesmolit toto:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^clanky/(.*\.html)$ index.php?akce=clanek&cisloclanku=$1 [L]
RewriteRule ^kategorie/(.*\.html)$ index.php?kategorie=$1 [L]
Když ted zadám url: neco.cz/clanky/geogebra.html, tak se zobrazí validní článek. A podařilo se mi taky rozchodit css styly pomocí:
<base href="http://localhost/web" />
Ale narazil jsem na problém. Když chci přidat například:
RewriteRule ^hlavolamy/(.*\.html)$ index.php?akce=hlavolamy&hlavolam=$1 [L]
Když ted zadám neco.cz/hlavolamy/dort.html, tak to nefunguje, protože v adresáři je soubor, který se jemnuje hlavolamy.php. Když ale změním podmínku například na:
RewriteRule ^hadanky/(.*\.html)$ index.php?akce=hlavolamy&hlavolam=$1 [L]
Tak už to funguje. Jak mohu toto opravit?
Najdete zde články zabývající se matematikou základních a středních škol a databázi hlavolamů.
Pro vyzkoušení Vaš
Všechno vyřešeno. Výsledný .htaccess vypadá takto:
RewriteEngine On
ErrorDocument 404 /404.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule clanky/(.*\.html)$ index.php?akce=clanek&cisloclanku=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule kategorie/vse/(.*)$ index.php?strana=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule kategorie/(.*\.html)$ index.php?kategorie=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule kategorie/(.*\.html)/(.*)$ index.php?kategorie=$1&strana=$2 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule hlavolamy/(.*\.html)$ index.php?akce=hadanky&hlavolam=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule redaktor/(.*\.html)$ index.php?akce=redakce&autor=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule akce/(.*)$ index.php?akce=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule testy/(.*)$ index.php?akce=zkouseni&test=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule reseni/(.*)$ index.php?akce=zkouseni&reseni=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule oprav/(.*)$ index.php?akce=zkouseni&oprav=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule registrace/?(.*)$ index.php?akce=reg&$1 [L]
Na localhostu šlape vše jak hodiny, ale když to zkusím dát na wz, nebo ic tak už to nefunguje, viz http://www.blujacker.wz.cz. Přitom oba hostingy by .htaccess měly podporovat. Kde je chyba?
Najdete zde články zabývající se matematikou základních a středních škol a databázi hlavolamů.
Pro vyzkoušení Vaš
hm, a co se mi to zobrazuje za stranku kdyz kliknu na clanek, ta 404?
Přesně tak.
Najdete zde články zabývající se matematikou základních a středních škol a databázi hlavolamů.
Pro vyzkoušení Vaš
1) zkus odstranit tu 404 co to bude pak delat
2) pridej do regularu dolar - $registrace/?(.*)$
ok:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule $clanky/(.*\.html)$ index.php?akce=clanek&cisloclanku=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule $kategorie/vse/(.*)$ index.php?strana=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule $kategorie/(.*\.html)$ index.php?kategorie=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule $kategorie/(.*\.html)/(.*)$ index.php?kategorie=$1&strana=$2 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule $hlavolamy/(.*\.html)$ index.php?akce=hadanky&hlavolam=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule $redaktor/(.*\.html)$ index.php?akce=redakce&autor=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule $akce/(.*)$ index.php?akce=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule $testy/(.*)$ index.php?akce=zkouseni&test=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule $reseni/(.*)$ index.php?akce=zkouseni&reseni=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule $oprav/(.*)$ index.php?akce=zkouseni&oprav=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule $registrace/?(.*)$ index.php?akce=reg&$1 [L]
ale stejně to nejede, viz http://www.blujacker.wz.cz/index.php
Najdete zde články zabývající se matematikou základních a středních škol a databázi hlavolamů.
Pro vyzkoušení Vaš
héééj, promin, jsem to debil, ne dolat, ale stríšku ^, dolar je přeci na konci.. :( ;)
Na localhostu to sice funguje, ale když to uploadnu na http://www.blujacker.wz.cz/index.php
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^clanky/(.*\.html)$ index.php?akce=clanek&cisloclanku=$1 [L]
...
Najdete zde články zabývající se matematikou základních a středních škol a databázi hlavolamů.
Pro vyzkoušení Vaš
Vyřešeno!
Nakonec se řešení samo ukázalo tady na foru: http://programujte.com/index.php?akce=diskuze&kam=vlakno&tema=8362-phob
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^clanky/(.*\.html)$ %{DOCUMENT_ROOT}/index.php?akce=clanek&cisloclanku=$1 [L]
Stačilo přidat %{DOCUMENT_ROOT}.
Najdete zde články zabývající se matematikou základních a středních škol a databázi hlavolamů.
Pro vyzkoušení Vaš
jde to i bez toho document root, musis mit ale mit tu ceslu kompetni, takze v tvem pripade
/index.php
v tom pripade phobu, nebo obecne, kdyz to mas v podadresari:
/podadresar/index.php
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Zjištění IP adresy — založil dragon124
Python ip adresy — založil myky
Výpis IP adresy — založil Jirka
Zjištění adresy — založil tonez
Format adresy — založil kuk
Moderátoři diskuze