Az összes fájl direk linkelésének tiltása . Htaccess-el hogyan?
Van egy oldal ahol csak az index.php fájl szeretném elérhetővé tenni, és csak neki a többi fájlt. Pl valaki tudja egy fájl teljes elérési útját akkor dobjon egy 403-as hibás vagy irányítson vissza. Eddig csak nagyjából sikerült ezzel, de nem minden fájlt tilt le:
<Files *>
Order Deny,Allow
Deny from all
</Files>
<Files index.php>
Order Deny,Allow
Allow from all
</Files>
pl. content/php/db.php letiltja de a content/js/dragndrop.js fájlt már nem, simán megnyitja. És valami egyszerű megoldást szeretnék, valami joker karaktert mert többféle file lesz az oldalon. Egyenlőre localhost-on fut, appServ.
.htaccess -ben, ReWrite modulal:
<iFModule mod_rewrite.c>
RewriteBase /
RewriteEngine on
# Ha nincs HTTP_REFERER
RewriteCond %{HTTP_REFERER} ^$
# Ha nem index.php
RewriteCond %{REQUEST_URI} !^(/index.php)$
# Ha nem index.html
RewriteCond %{REQUEST_URI} !^(/index.html)$
# Minden elérés esetén, hozzáférés tiltása
RewriteRule ^(.*)$ - [F]
</iFModule>
A DirectoryIndex -t elfelejtettem az előbb :-D
<iFModule mod_rewrite.c>
rewritebase /
RewriteEngine on
# Ha nincs HTTP_REFERER
RewriteCond %{HTTP_REFERER} ^$
# A DirectoryIndex esetén
RewriteCond %{REQUEST_URI} !^(/)$
# Ha nem index.php
RewriteCond %{REQUEST_URI} !^(/index.php)$
# Ha nem index.html
RewriteCond %{REQUEST_URI} !^(/index.html)$
# Minden elérés esetén, hozzáférés tiltása
RewriteRule ^(.*)$ - [F]
</iFModule>
igen, a gyorsítótár sokszor megkavar, én kiszoktam kapcsolni fejlesztéskor. :-)
Ha esetleg konkrét fájlokra akarod szűkíteni mert pl. rewrite -ot használsz, pl. baráságos URL -ekhez:
<iFModule mod_rewrite.c>
rewritebase /
RewriteEngine on
# Ha nem www. -vel kezdődik
RewriteCond %{HTTP_HOST} !^www\.
# Irányítsa www -s címre
RewriteRule ^(.*)$ [link] [R=301,L]
# Ha nincs HTTP_REFERER
RewriteCond %{HTTP_REFERER} ^$
# Ha látezik mint fájl
RewriteCond %{REQUEST_FILENAME} -f
# A DirectoryIndex esetén
RewriteCond %{REQUEST_URI} !^(/)$
# Ha nem index.php
RewriteCond %{REQUEST_URI} !^(/index.php)$
# Ha nem index.html
RewriteCond %{REQUEST_URI} !^(/index.html)$
# Minden elérés esetén, hozzáférés tiltása
RewriteRule ^(.*)$ - [F]
# Ha nem létezik mint fájl
RewriteCond %{REQUEST_FILENAME} !-f
# Ha nem létezik mint mappa
RewriteCond %{REQUEST_FILENAME} !-d
# Irányítsa az index.php -ra $_SERVER['REQUEST_URI'] változóból meg kapod GET címsort.
RewriteRule ^(.*)$ index.php [QSA]
</iFModule>
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!