Erreur 404 sur les hôtes virtuels utilisant des fichiers .htaccess personnalisés
P粉729198207
P粉729198207 2023-09-05 10:28:49
0
2
624
<p>J'ai installé Apache2 sur un serveur Linux local. Il possède un hôte virtuel nommé <code>pcts.local</code> et son répertoire racine est <code>/var/www/repos/pcts/</code>. À la racine de pcts.local se trouve un fichier .htaccess qui tente de réécrire l'URL pour inclure .php s'il n'est pas indiqué comme suit : </p> <pre class="brush:php;toolbar:false;">http://pcts.local/ -> http://pcts.local/contact -> http://pcts.local/contact.php</pre> <p>Le problème est que <code>http://pcts.local/contact</code> donne l'erreur 404, mais <code>http://pcts.local/contact.php</code> de 200. </p> <h3>Configuration de l'hôte virtuel : </h3> <pre class="brush:php;toolbar:false;"><VirtualHost *:80> Nom du serveur pcts.local Administrateur du serveur webmaster@localhost DocumentRoot /var/www/repos/pcts Journal des erreurs ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combiné </VirtualHost></pre> Le fichier <h3>.htaccess se trouve dans <code>/var/www/repos/pcts/</code></h3> <pre class="brush:php;toolbar:false;">RewriteEngine activé RéécrireBase/ RéécritureCond %{REQUEST_FILENAME} !-d RéécritureCond %{REQUEST_FILENAME}.php -f RewriteRule ^(.+)$ $1.php [NC,L]</pre> <p>Merci d'avance pour votre aide ! </p>
P粉729198207
P粉729198207

répondre à tous(2)
P粉151720173

Dans votre code, REQUEST_FILENAME nécessite un fichier avec une extension php pour effectuer la réécriture.

Essayez ceci :

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ .php [NC,L]
P粉009828788

S'il s'agit de votre configuration complète, votre fichier .htaccess ne sera pas traité.

Vous n'avez pas activé les remplacements .htaccess 覆盖。 (即,您尚未启用 .htaccess 文件的解析。)默认情况下,.htaccess pour un répertoire spécifique. (C'est-à-dire que vous n'avez pas activé l'analyse des fichiers

.) Par défaut, les remplacements

sont désactivés.

Mais vous n'avez pas non plus activé l'accès à cette zone du système de fichiers ? L'avez-vous fait ailleurs dans la configuration du serveur ? ! 容器内有一个相关的

Vous devriez être dans la section

comme ceci : .htaccess

<Directory /var/www/repos/pcts>
    # Enable .htaccess overrides
    AllowOverride All

    # Allow user access to this directory
    Require all granted
</Directory>
Vous pouvez restreindre davantage le remplacement

si nécessaire (voir le lien de référence ci-dessous)

    Référence :
  • https://httpd.apache.org/docs/2.4 /mod/core.html#allowoverride
🎜 🎜
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!