Mod userdir et url rewriting

Bonjour.

Cela fait un moment que j’essaye de faire fonctionner les mod user_dir et url_rewriting sur apache2. Le mod user_dir fonctionne correctement. Voici le contenu du fichier /etc/apache2/mods-available/userdir.conf :

<IfModule mod_userdir.c>
        UserDir public_html
        UserDir disabled root

        <Directory /home/*/public_html>
                Options FollowSymLinks
                AllowOverride All
                Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
                #<Limit GET POST OPTIONS>
                #        Order allow,deny
                #        Allow from all
                #</Limit>
                #<LimitExcept GET POST OPTIONS>
                #        Order deny,allow
                #        Deny from all
                #</LimitExcept>
        </Directory>
</IfModule>

J’ai besoin d’activer l’url rewriting pour un seul utilisateur. J’ai donc mis le fichier .htaccess dans le répertoire public_html de cet utilisateur. Voici le contenu de ce fichier :

<IfModule mod_rewrite.c>
        RewriteEngine on

        # Allow access to assets folder from plugins folders
        RewriteRule ^app/plugins/(.+)/assets - [L]

        # forbid access to files and folders under app
        RewriteRule ^app/.*$ - [L,F]

        # rewrite to index.php
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^(.*)$ index.php?action=$1 [L,QS$

</IfModule>

Le module url_rewriting est bien sûr activé sous apache :

sudo a2enmod userdir
Module userdir already enabled

Lorsque j’accède à index.php en faisant mon-adresse-ip/~nom-utilisateur/quelquechoses, j’obtient une erreur 404 :

The requested URL /home/nom-utilisateur/public_html/index.php was not found on this server.

Je sèche un peu, je suis tombé sur beaucoup de forum sur le net, mais ils ne proposent pas de solution satisfaisante à ce problème. Si quelqu’un pouvait m’éclairé, merci d’avance.

En cherchant un peu plus, j’ai finis par trouver la solution. En fait il fallait juste faire la redirection vers /mon-ip/~nom-utilisateur/index.php. Ce qui donne à la fin pour le .htaccess :

<IfModule mod_rewrite.c>
	RewriteEngine on
	
	# Allow access to assets folder from plugins folders
	RewriteRule ^app/plugins/(.+)/assets - [L]
	
	# forbid access to files and folders under app
	RewriteRule ^app/.*$ - [L,F]
	
	# rewrite to index.php
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteCond %{REQUEST_FILENAME} !-d
	RewriteRule ^(.*)$ /~nom-utilisateur/index.php?action=$1 [L,QSA]	
</IfModule>