Hezčí URL adresy
Zdravím,
nevíte, kde může být chyba v tomto zápise ?
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
Potřebuji, aby mi fungovaly adresy, které jsou napsány bez přípony.
Problém řeším u subdomén. Pro hlavní web toto ošetření nepotřebuji.
2 Answers
Také záleží, jak zadáváte URL. Pokud na konci URL uvedete „/“, tak uvedený kód nebude fungovat – to je potřeba ještě ošetřit.
Předpokládejme, že máte na FTP adresář /www/domains/mujweb.cz/, ve kterém jsou následující soubory a adresář:
- .htaccess
- index.php
- test.php
- podadresar.php
- /podadresar
- index.php
- test.php
Aby fungovaly i URL s lomítkem na konci, je potřeba mít v souboru .htaccess následující kód:
RewriteEngine On # osetreni lomitka na konci URL RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)/$ /$1 # nasmerovani pozadavku na PHP script RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^(.*)$ /$1.php
Tento kód zajistí následující chování (uvedu několik příkladů URL):
- http://mujweb.cz = načte script /index.php
- http://mujweb.cz/test = načte se script /test.php
- http://mujweb.cz/test/ = načte se script /test.php
- http://mujweb.cz/test/podadresar = načte se script /podadresar/index.php
- http://mujweb.cz/test/podadresar/test = načte se script /podadresar/test.php
- http://mujweb.cz/test/podadresar/test/ = načte se script /podadresar/test.php
- http://mujweb.cz/podadresar.php = načte se script /podadresar.php
Možná jste si všiml, že script /podadresar.php se načte pouze při zadání URL http://mujweb.cz/podadresar.php – to je z toho důvodu, že vedle něj existuje adresář /podadresar.

Dobrý den,
Vámi uvedený kód je v pořádku a funkční. Tento kód musí být umístěn v .htaccess souboru v adresáři subdomény, kde tuto funkci potřebujete. Testoval jsem to na NoLimit webhostingu.

Bohužel mi tento kód nefunguje ani v adresáři /domains/mujweb.cz/

Vidíte nějaké chyby? Jak se to projevuje?

Problém vyřešen. Funkčnost narušoval odstavec v hlavním .htaccess souboru – tento odstavec obsahoval nějaká opatření pro WordPress. Po smazání je vše již funkční. Děkuji všem!
Výše uvedené funguje za předpokladu, že na FTP v adresáři /www máte náš výchozí .htaccess soubor, který se stará o směrování požadavků do adresářů jednotlivých domén a subdomén – viz https://kb.wedos.com/cs/webhosting/subdomeny.html