Autor Zpráva
Kcko
Profil
Ahoj,

snažím se o následující:

Odstranit z URL .php, a přesměrovat na verzi s koncovým lomítkem, pokud není tak doplnit a musí fungovat i 404-tka.

DOMENA/neco.php  ->  DOMENA/neco/ # fyzicky si to saha na neco.php
DOMENA/neco  -> DOMENA/neco/ # fyzicky si to saha na neco.php
DOMENA/index.php -> DOMENA # nechceme aby slo v URL dat index.php
DOMENA/nesmysl -> 404 # tu by měla zařídit direktiva Error 404 / 404.php protože nesmysl.php neexistuje
DOMENA/neco/nesmysl  -> 404 # tu by měla zařídit direktiva Error 404 / 404.php protože neco.php/nesmysl.php neexistuje

Funguje mi to tak napůl a začínám se těch pravidlech ztrácet, nemá někdo hotové řešení? StackOverflow sem prohlédl, ale kompletní řešení mi nefunguje.
Kcko
Profil
Tak už to mám, kdyby to někoho zajímalo:

ErrorDocument 404 /404.php

RewriteEngine On
RewriteBase /

# index
RewriteRule ^index/?$ / [R=301,L,QSA]

# proti zacykleni redirektu
RewriteCond %{ENV:REDIRECT_STATUS} !^$
RewriteRule .* - [L]

# koncovka na bez koncovky
RewriteCond %{REQUEST_URI} ^(.*).php$
RewriteRule ^(.*).php$ $1/ [R=301,L,QSA]

# lominko hodne omezene
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^([a-z]+)? $1/ [R=301,L,QSA]

# podstrceni
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ $1.php [L,QSA]
Kajman
Profil
Jen bych přidal flagy NE tam, kde je R (přesměrování).
Kcko
Profil
Z jakého důvodu? Díky
Kajman
Profil
Viz konec komentu v podobném přepisu
phpfashion.com/hadanka-znate-mod_rewrite#comment-7359
Kcko
Profil
Kajman:
Aha, 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