Autor Zpráva
Mufna
Profil
Zdravím Vás. poradíte, jak mám sestavit Rewrite Rule v .htaccess tak, aby mi to odstraňovalo příponu ".php". Mám například stránku "http://www.mujweb.cz/en/contact.php" a chci aby se objevovalo "http://www.mujweb.cz/en/contact/"
Chamurappi
Profil
Reaguji na Mufnu:
Návod jsi četl?
Mufna
Profil
Chamurappi

Ano. Chci použít mod_rewrite poprvé a na tuto konkrétní věc (a tuto konkrétní věc, nebo alespoň něco podobného, jsem tam nenašel). Trochu moudrý z toho jsem, ale šlo by poradit blíže ?
Chamurappi
Profil
Reaguji na Mufnu:
Příklady jsi četl?
Mufna
Profil
Chamurappi

Pokud se nemýlím, tak by to šlo nějak uvařit z tohoto:
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 jak dál zatím nevím. A nepoužívám "index.php?action=blabla", mám v rootu webu pouze jeden index.php, který rozhoduje o volbě jazykového podadresáře (en/ nebo cz/), v každém z nich je pak index.php jako hlavní stránka a všechny další stránky jsou stranka1.php, stranka2.php atd. A z nich jen potřebuju odstranit to ".php"
Chamurappi
Profil
Reaguji na Mufnu:
Nešlo by to takhle?
RewriteRule ^(.+)\.html $1.php [L,QSA]
Mufna
Profil
Chamurappi
Nešlo by to takhle? 
RewriteRule ^(.+)\.html $1.php [L,QSA]

Asi ne. Vytvořil jsem tedy .htaccess
#RewriteEngine on
#RewriteRule	^(.+)\.html $1.php [L,QSA]

a nakopíroval ho do rootu + do /cz/ + do /en/ . Ale nedělá to nic.
Mufna
Profil
Zkusil jsem ještě str4wberryho postup, který jsem mezitím našel:
RewriteEngine on
RewriteRule ^([^.]+)$ $1.php [QSA,L]


ale taky to nefunguje. Jinak .htaccess na serveru povolený mám, tady by problém určitě být neměl.
Mufna
Profil
BTW, jak je to s tím znakem "#" ? Má (musí) tam být nebo ne ?
Chamurappi
Profil
Reaguji na Mufnu:
Ten zápis v mém předchozím příspěvku přepisuje „cokoliv.html“ na „cokoliv.php“ (zřejmě). Špatně jsem si přečetl tvé zadání.
Zkus tedy:
RewriteRule ^(.+)/$ $1.php [QSA,L]

BTW, jak je to s tím znakem "#" ?
Jaký „#“ myslíš?

Má (musí) tam být nebo ne ?
Nevím, já jsem v životě žádný .htaccess nepsal, ani nemám po ruce žádný server, který by ho podporoval. Vycházím jen z návodů na JPW.
panther
Profil
Mufna
BTW, jak je to s tím znakem "#" ?
jakým znakem, kde?

Myslíš komentář v .htaccessu? Ten tam být nemusí. Nebo myslíš nějaký jiný?
AM_
Profil
BTW, jak je to s tím znakem "#" ? Má (musí) tam být nebo ne ?
křížek na začátku řádku indikuje komentář. takže když tam bude, tak to samozřejmě nepoběží :)
Mufna
Profil
AM_
křížek na začátku řádku indikuje komentář

Jo, jasně, už blbnu. Díky.
Mufna
Profil
Chamurappi
RewriteRule ^(.+)/$ $1.php [QSA,L]

Bohužel, taky nic. Musím to mít v rootu i v obou adresářích, že ? Mám to všude, ale nejede to.
Mufna
Profil
Jinak nevím jestli by to nepomohlo, aby mi někdo poradil, ale odkazy na stránce vypadají původně takto:

<a href="<?php print($link[0,1,2 atd].'.'.$ext);?>">

$link je definovaný v souboru jazyk.php, který se requiruje do každé stránky přes hlavní html.php. $ext je tam taky definováno ($ext ='php'). Příponu php takhle zatím používat musím, protože v jednotlivých podstránkách načítám text jazyka přes proměnné definované v jazyk.php a proto potřebuju aby měly příponu ".php".
Mufna
Profil
Chamurappi

Aha, tak princip už jsem pochopil. Zkusil jsem si obráceně přepsat ".php" na ".html" a funguje to. Akorát to má háček: vyleze chybová hláška 404 - "strankaxy.html" 404 Not Found. Takže asi budu muset někde ještě ošetřit, aby ty stránky nalezeny byly (ať už tu příponu změním jakkoliv)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: