Autor Zpráva
Hitman
Profil
Mám funkční script pro přesměrování soubor.php na jakpsatweb.cz/soubor. Potřeboval bych přidat i variantu pro koncové lomítko - jakpsatweb.cz/soubor/. Lze to nějak jednoduše?

RewriteEngine On
RewriteRule ^([^\.]+)$ $1.php [NC,L]

Díky
Keeehi
Profil
Snad takto
RewriteRule ^([^\.]+)/?$ $1.php [NC,L]

Z hlediska regulárního výrazu to smysl dává ovšem s konfigurací apache si jistý nikdy nejsem. Ono tak záleží případně na dalších rewritech atp.
Kajman
Profil
Kdyby to lomítko požrala již první závorka, tak lze napsat pravidla dvě.

RewriteEngine On
RewriteRule ^([^\.]+)/$ $1.php [L]
RewriteRule ^([^\.]+)$ $1.php [L]
Hitman
Profil
Keeehi

To jsem také zkoušel, ale funguje úplně stejně jako původní varianta - bez lomítka. Kajmanovo řešení funguje, díky :-)

Ještě taková drobnost - kvůli duplicitě by bylo asi dobré jednu verzi přesměrovat na druhou. Jak udělám relativní adresu webu?

RewriteRule ^([^\.]+)/$ $1.php [L]
RewriteRule ^([^\.]+)$ http://jakpsatweb.cz/$1 [R]

Zkoušel jsem místo http..napsat jen /$1, ale píše mi to smyčku přesměrování. Sice to není důležité, doména se tak často nemění, ale určitě to bude profesionálnější řešení relativně..
Kajman
Profil
A která varianta má být výchozí a která má být aleternativní se změnou na výchozí?
Hitman
Profil
Nechal bych výchozí jakpsatweb.cz/clanek , ale z hlediska SEO je to asi jedno...
Kajman
Profil
Zkuste něco takového
#potlaceni doplneni lomitka diky mod_dir
DirectorySlash Off

RewriteEngine On
RewriteBase /

#presmerovani z existujicich adres koncicich .php
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.+)\.php$ $1 [L,R=302,NE]

#presmerovani z adres koncicich na lomitko
RewriteRule ^([^\.]+)/$ $1 [L,R=302,NE]

#podstrceni php souboru, jen pokud existuje
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^\.]+)$ $1.php [L]

Pokud soubor .htaccess nebude v rootu webu, je potřeba upravit RewriteBase a doplnit tam adresář, ve kterém je.
Hitman
Profil
Netušil jsem že to bude tak komplikované, když s absolutní adresou je to na 5 řádků.

Nicméně funguje perfektně - díky!

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0