Tout d'abord, je ne suis pas sûr d'avoir bien compris votre question, mais je l'essaie quand même.
Actuellement, vous avez:
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)$ /index.php?page=$1 [QSA,L]
Qu'est-ce que vous auriez besoin en plus est:
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{HTTP_REFERER} !^http://your-domain\.tld/.*$ [NC]
RewriteRule XXXXXX/(.*)$ - [F,NC,L]
.htaccess RewriteRule
« s sont vérifiées dans l'ordre où ils se produisent, vous voudrez peut-être faire quelque chose comme ça, même si je suis corrigé parce que je n'ai pas eu la chance de vérifier si cela fonctionnerait:
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^([^/]+)$ /index.php?page=$1 [QSA]
RewriteCond %{HTTP_REFERER} !^http://your-domain\.tld/.*$ [NC]
RewriteRule XXXXXX/(.*)$ - [F,NC,L]
Vérifie d'abord s'il s'agit d'un fichier argumenté nommé index.php qui doit être réécrit, sinon (flag L
), continue pour la règle suivante en saisissant une nouvelle condition, puis si la règle valide, restreindre l'accès (lancer HTTP 403).
Est-ce que cela a du sens? Quoi qu'il en soit, s'il vous plaît expérimenter avec l'exemple ci-dessus. Htaccess parce que comme je l'ai dit, je ne pouvais pas le tester.