<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>RewriteRule — Forum de PluXml</title>
        <link>https://forum.pluxml.org/index.php?p=/</link>
        <pubDate>Fri, 03 Apr 2026 22:55:15 +0000</pubDate>
        <language>fr</language>
            <description>RewriteRule — Forum de PluXml</description>
    <atom:link href="https://forum.pluxml.org/index.php?p=/discussions/tagged/rewriterule/feed.rss" rel="self" type="application/rss+xml"/>
    <item>
        <title>Le rewrite vers index.php fait ignorer à Apache2 les fichiers en code http 404 et affiche http 200</title>
        <link>https://forum.pluxml.org/index.php?p=/discussion/7707/le-rewrite-vers-index-php-fait-ignorer-a-apache2-les-fichiers-en-code-http-404-et-affiche-http-200</link>
        <pubDate>Sat, 24 Aug 2024 21:34:02 +0000</pubDate>
        <category>Bogues</category>
        <dc:creator>AmisSH</dc:creator>
        <guid isPermaLink="false">7707@/index.php?p=/discussions</guid>
        <description><![CDATA[<p><strong>Le rewrite vers index.php fait ignorer à Apache2 les fichiers en code http 404 et affiche http 200</strong></p>

<p>Exemple :</p>

<ul>
<li>Une image est ajoutée dans un article, puis, upload avec un mauvais nom.</li>
<li>Un backup réinstallé pour lequel il manquerait des datas.</li>
<li>Un backup réinstallé, pour lequel il manquerait des droits.</li>
</ul>

<p>Je vous propose pour une prochaine mise à jour, de permettre à Apache de renvoyer le code http 404 sur les fichiers qui n'existent pas sur le serveur.</p>

<pre># BEGIN -- Pluxml
Options -Multiviews


RewriteEngine on
RewriteBase /

######################
# In CGI environment #
######################
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
#
############################
# Début Hack code http 404 #
############################
# PB : Afficher une page avec une image qui n'existe pas sur le serveur Apache2.4 est rewrite par index.php et le code http affiché dans les logs apache2 sera TOUJOURS 200 !
# Le code http 200 devient code http erreur 404 pour les fichiers - images - qui n'existent pas sur le serveur Apache2.4.
# xx.xx.xx.xxx - - [24/Aug/2024:21:21:42 +0200] "GET /data/avatars/amis-sh.png HTTP/2.0" 404 141 "<a href="https://amis-sh.fr/" rel="nofollow">https://amis-sh.fr/</a>" "Mozilla/5.0 (X11; Linux x86_64; rv:130.0) Gecko/20100101 Firefox/130.0"
############################
#
# Première solution :
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
# NE PAS CREER la page 404.php sinon le code http de retour sera 200.
#RewriteRule ^(.*)$ 404.php?$1 [L]
#
# Deuxième solution :
# Always send 404 on missing files in these folders :
RewriteCond %{REQUEST_URI} !^/(data|plugins|themes)/
#
# Troisième solution :
# Toutes les requêtes, à l'exception des fichiers .js, .ico, .gif, .jpg, .png et .css, seront réécrites en index.php :
# RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php [NC,L]
#
############################
# Fin Hack code http 404   #
############################

# Never rewrite for existing files, directories and links :
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
# Réécriture des urls vers index.php affiche toujours un code http 200 :
RewriteRule ^(?!feed)(.*)$ index.php?$1 [QSA,L]
RewriteRule ^feed\/(.*)$ feed.php?$1 [QSA,L]

# END -- Pluxml</pre>

<p>Avez vous une autre approche pour permettre à Apache2.4 d'afficher un code erreur http 404 pour les fichiers qui n'existent pas sur le serveur ?</p>

<p>NB : J'ai remarqué que Apache ne m'affiche pas de message du type " File not exist / File not found " dans les logs.<br />
Ici, j'ai renommé l'image amis-sh.png pour vérifier le code .htaccess , mais, je n'ai que le code erreur 404, sans le message "File not exist". <br />
xx.xx.xx.xxx - - [24/Aug/2024:21:21:42 +0200] "GET /data/avatars/amis-sh.png HTTP/2.0" 404 141 "<a href="https://amis-sh.fr/" rel="nofollow">https://amis-sh.fr/</a>" "Mozilla/5.0 (X11; Linux x86_64; rv:130.0) Gecko/20100101 Firefox/130.0"<br />
Savez vous si cela est le comportement par défaut de Apache2.4 ?<br />
Il doit être possible de changer le format des logs pour afficher un message du type "File not exist".<br />
Je n'ai pas trouvé de réponse pour le moment, et, je dois me contenter de l'erreur code http 404.</p>

<p>Merci de vos avis.</p>
]]>
        </description>
    </item>
    <item>
        <title>Ajouter .html à la fin des urls : version 5.8.4 vs 5.8.7</title>
        <link>https://forum.pluxml.org/index.php?p=/discussion/7216/ajouter-html-a-la-fin-des-urls-version-5-8-4-vs-5-8-7</link>
        <pubDate>Sat, 25 Jun 2022 17:32:42 +0000</pubDate>
        <category>Modifications</category>
        <dc:creator>InstantT</dc:creator>
        <guid isPermaLink="false">7216@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>Bonjour à toute la communauté</p>

<p>J'étais actuellement sur une version 5.8.4 de Pluxml.<br />
J'avais modifié le code pour rajouter .html à la fin des URLS, notamment le fichier .htaccess qui était comme suit :</p>

<p><code>RewriteRule ^(a\d*|c\d*|tag|archives|static\d*|page\d*|telechargement|download)\b(.*).html$ index.php?$1$2 [L]</code></p>

<p>Or, dans la nouvelle version, la ligne est désormais : <br />
<code>RewriteRule ^(?!feed)(.*)$ index.php?$1 [L]</code></p>

<p>J'ai tenté de modifier (en ajoutant .html) : <code>RewriteRule ^(?!feed)(.*).html$ index.php?$1 [L]</code>, sans succès <img src="https://forum.pluxml.org/plugins/emojiextender/emoji/twitter/anguished.png" title=":anguished:" alt=":anguished:" height="18" /></p>

<p>Avez vous une idée de comment je pourrai modifier cela pour que mon site fonctionne ?</p>

<p>Merci d'avance pour votre aide</p>

<p>InstantT</p>
]]>
        </description>
    </item>
   </channel>
</rss>
