Puncte:1

Cum pot restricționa accesul la `/` și, de asemenea, la `/index.php` pe serverul meu, dar nu permit nimic altceva?

drapel jp

Aș dori să permit utilizatorilor să poată vizita doar index.php (și, de asemenea, doar /) pe serverul meu și nimic altceva (returnând un 403 dacă este valid și un 404 dacă un fișier invalid).

Cum pot face acest lucru? Am incercat urmatoarele solutii Se interzice accesul la toate fișierele, cu excepția index.html apache

Interzicerea accesului la toate fișierele, cu excepția index.php, dar permiteți accesul prin „/” în fișierul htaccess

dar nu par să aibă niciun efect.

Fișierul meu .htaccess este acesta, dar nu are niciun efect și încă pot accesa alte fișiere de pe serverul meu:

Comanda permite, refuza
Negați de la toți
<FilesMatch index\.php>
        Permite de la toți
</FilesMatch>

Nu sunt sigur dacă trebuie să definesc ceva și în configurația mea virtualhosts?

Fișierul meu virtualhosts este:

ServerAdmin webmaster@localhost
ServerName server.mydomain.com
ServerAlias ​​server.mydomain.com
DocumentRoot /var/www/server.mydomain.com
DirectoryIndex index.php
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combinat

SSLCertificateFile /etc/letsencrypt/live/server.mydomain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/server.mydomain.com/privkey.pem
Includeți /etc/letsencrypt/options-ssl-apache.conf

Ieșirea apache2ctl -S este:

Configurare VirtualHost:
*:443 server.mydomain.com (/etc/apache2/sites-enabled/server.mydomain.com-le-ssl.conf:2)
*:80 server.mydomain.com (/etc/apache2/sites-enabled/server.mydomain.com.conf:1)
ServerRoot: „/etc/apache2”
DocumentRoot principal: „/var/www/html”
ErrorLog principal: „/var/log/apache2/error.log”
Mutex ssl-stapling: using_defaults
Mutex ssl-cache: using_defaults
Mutex implicit: dir="/var/run/apache2/" mecanism=default
Mutex mpm-accept: using_defaults
Mutex watchdog-callback: using_defaults
Mutex ssl-stapling-refresh: using_defaults
Fișier Pid: „/var/run/apache2/apache2.pid”
Definiți: DUMP_VHOSTS
Definiți: DUMP_RUN_CFG
Utilizator: name="www-data" id=33
Grup: name="www-data" id=33
Puncte:1
drapel us
Rob

IMHO, mergi greșit și încerci să rezolvi o problemă care poate fi evitată complet:

Pur și simplu nu stocați fișiere și directoare care nu aparțin online în DocumentRoot.

Limitați conținutul directorului /var/www/server.example.com numai la asta index.php fișier și nu puteți greși.


Această întrebare este etichetată cu istoricul versiunea și sintaxa din care nu sunt potrivite pentru versiunea curentă Apache httpd 2.4. - Vedea https://httpd.apache.org/docs/2.4/upgrading.html


Când doriți să publicați ceva sub http://www.example.com/some-path/ folosește Alias directivă de a expune un director diferit în loc de a crea un subdirector /var/www/server.example.com/some-path/ (de exemplu creați /var/www//some-path) si foloseste:

<VirtualHost *:80
    ServerAdmin webmaster@localhost
    ServerName server.mydomain.com
    ServerAlias server.mydomain.com
    DocumentRoot /var/www/server.example.com

    Alias /some-path "/var/www/some-path"

    <Directory "/var/www/some-path"> 
       # add settings here, for example
       Order deny,allow
       Deny from all
       Allow From 127.0.0.1
    </Directory>
</VirtualHost>

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.