Configuration htaccess apache2.4

Bonsoir

Je n’arrive pas à proteger un repertoire web avec htaccess.

Je suis sous debian9 et apache2.4
Le mod rewrite est bien activé

Voic le contenu de mon virtualhost :

<VirtualHost *:80>

    ServerName mondomaine.fr    

    ServerAlias www.mondomaine.fr  
	Alias /hit /home/user/www     

   
    ServerAdmin postmaster@mondomaine.fr 

     DocumentRoot /home/user/www/

    <Directory /home/user/www/>

        RewriteEngine On
	RewriteBase /home/user/www/cgi-bin	
        Options -Indexes +FollowSymLinks
        
        AllowOverride All
  Require all granted

          Require all granted 

    </Directory>
ErrorLog /home/user/logs/error.mondomaine.fr.log
        LogLevel warn
        CustomLog /home/user/logs/access.mondomaine.fr.log combined 

       <Directory /home/user/www/>
        Options Indexes
    </Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride All
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>

RewriteEngine on
RewriteCond %{SERVER_NAME} =www.mondomaine.fr [OR]
RewriteCond %{SERVER_NAME} =mondomaine.fr
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

</VirtualHost>

Merci pour votre aide

Cordialement

C’est parce que rewritebase ne s’utilise pas dans un contexte global.
Ca va dans le htaccess de /home/user/www.
Et même si tu peux mettre le rewriteengine on pour tout le site, il est plutôt d’usage de mettre toutes les directives de rewrite en htaccess, dans un

<IfModule mod_rewrite.c>
(...)
</IfModule>

J’ai beau ajouter rewriteengine on dans mon virtualhost le htaccess ne fonctionne pas.

Avez vous une autre idée ?

Merci à vous

Cordialement

Avec le virtualhost bien expurgé de toute les lignes concernant le rewrite ?

Et met ça dans le .htaccess (avec un ., c’est sur) :

<IfModule  mod_rewrite.c>
	RewriteEngine on
	RewriteCond %{HTTP_HOST} !^www\.mondomaine\.fr [NC]
	RewriteRule (.*) https://www.mondomaine.fr/$1 [QSA,R=301,L]
</IfModule>

Si ça ne marche pas, c’est peut être que ton module rewrite n’est pas activé: a2enmod rewrite

Toujours pas ?

C’était presque bon…

Pour faire ce que tu veux, c’est plutot ça, dans le .htaccess :

<IfModule  mod_rewrite.c>
	RewriteEngine on
	RewriteCond %{HTTP_HOST} !^www\.mondomaine\.fr [NC,OR]
	RewriteCond %{HTTPS} off
	RewriteRule (.*) https://www.mondomaine.fr/$1 [QSA,R=301,L]
</IfModule>

Non toujours pas

En fait j’essais de proteger un repertoire cgi-bin.

Ce que vous me dites d’ajouter dans le htaccess, c’est dans quel repertoire qui faut que je l’ajoute ? A la racine du site web ou dans le repertoire cgi-bin ?

Car là apparemment ce que vous me dites d’ajouter ca va a la racine du repertoire web

Merci pour vos lumiere

Cordialement

C’est bon j’ai trouvé !
L’erreur venait d’un virtualhost d’awstats qu’il faillait modifier.

Moi je modifiais juste le virtualhost de mon domaine mais il y avait un virtuahost pour awstats.

Voila merci à vous

Cordialement

Oui, effectivement, je n’avais pas compris pour cgi-bin, et ce que j’indiquais concernait les redirection pour obtenir un accés en forme canonique sur le serveur, pas la protection d’un répertoire.

Oui Mattotop je vous remercie d’avoir eclairé mes lanternes.

J’ai un autre probleme !

Si vous avez la solution ?

Merci Matt