Hezčí URL adresy

Vyřešeno1.73K zhlédnutíWebhosting
0

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.

Role: Zákazník
Otázka je uzamčena pro nové odpovědi.
FH140428 Vybral nejlepší odpověď 9. 8. 2019
0
1.24K Odpověď od WEDOS Internet, a.s. 1 Komentář

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.

Role: Podpora
FH140428 Vybral nejlepší odpověď 9. 8. 2019
0
1.24K Odpověď od WEDOS Internet, a.s. 3 Comments

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.

Role: Podpora
LP97397 publikoval nový komentář 9. 8. 2019