web-dev-qa-db-fra.com

L'URL demandée/about est introuvable sur ce serveur.

La page d'accueil de mon site web wordpress semble s'afficher correctement, mais si vous cliquez sur l'une des pages, le message d'erreur suivant s'affiche:

Not Found

The requested URL /about was not found on this server.

Apache/2 Server at www.wildlionmedia.co.uk Port 80

Je ne sais pas s'il s'agit d'un problème lié au thème ou au fichier .htaccess qui n'a pas été réécrit correctement. 

http://www.wildlionmedia.co.uk/

Des idées comment je peux résoudre le problème?

# Switch rewrite engine off in case this was installed under HostPay.
RewriteEngine On

SetEnv DEFAULT_PHP_VERSION 53

DirectoryIndex index.cgi index.php

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine Off
RewriteBase /wildlionmedia.co.uk/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wildlionmedia.co.uk/index.php [L]
</IfModule>

# END WordPress
28
user1096057

Ce n'est pas un bloc typique de réécriture Wordpress. C'est:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Voir http://codex.wordpress.org/Using_Permalinks#Where.27s_my_.htaccess_file.3F

Où est mon fichier .htaccess? Les fichiers index.php et .htaccess de WordPress doivent être ensemble dans le répertoire indiqué par l'adresse du site (URL) sur votre page Options générales. Depuis le nom du fichier commence par un point, le fichier peut ne pas être visible via un client FTP sauf si vous modifiez les préférences de l'outil FTP pour afficher tous les fichiers, y compris les fichiers cachés. Certains hôtes (par exemple, Godaddy) peuvent ne pas apparaître ou vous permet de modifier .htaccess si vous installez WordPress via le fichier Installation de Godaddy Hosting Connection.

Création et édition (.htaccess) Si vous ne possédez pas déjà un Fichier .htaccess, créez-en un. Si vous avez un accès Shell ou SSH au fichier serveur, une simple commande tactile .htaccess créera le fichier. Si vous utilisez FTP pour transférer des fichiers, créez un fichier sur votre ordinateur local, appelez-le 1.htaccess, téléchargez-le à la racine de votre dossier WordPress, puis renommez-le .htaccess.

Vous pouvez éditer le fichier .htaccess par FTP, Shell ou (éventuellement) votre fichier Panneau de contrôle de l'hôte.

Le moyen le plus simple et le plus rapide de le faire, réinitialisez vos liens permanents dans Tableau de bord >> Paramètres >> Permaliens et assurez-vous que .htaccess est accessible en écriture pour que WordPress puisse écrire les règles lui-même.

Et: savez-vous que vous appelez index.cgi comme document par défaut plutôt que index.php? C'est faux. Supprimer index.cgi. Ou essayez également de supprimer toute la ligne, car la définition d'un document par défaut sur votre serveur peut ne pas être nécessaire.

35
markratledge

Si tous les points ci-dessus ne fonctionnent pas. Ensuite, essayez celui-ci. Je l'ai essayé. Cela fonctionne pour moi.

  1. Allez /etc/httpd/conf/httpd.conf
  2. Changez le AllowOverride None en AllowOverride All .
  3. Redémarrez le serveur Apache. 

MISE À JOUR 2017  

Pour les nouvelles versions d'Apache, le fichier s'appelle Apache2.conf

Pour accéder au fichier, tapez Sudo nano /etc/Apache2/Apache2.conf et modifiez la ligne correspondante dans le bloc <Directory /var/www >

42
Birendra Rawat

J'ai supprimé le fichier .htaccess précédent et créé un nouveau fichier en cliquant sur le bouton Enregistrer dans Paramètres-> Permaliens

et maintenant que les pages ont commencé à bien fonctionner ...

7
yadavr

Cela a fonctionné pour moi comme ceci: 

Allez dans Tableau de bord Admin Wordpress> "Paramètres"> "Permaliens"> "Paramètres communs", réglez le bouton radio sur "Structure personnalisée" et collez-le dans la zone de texte:

/index.php/%year%/%monthnum%/%day%/%postname%/

et cliquez sur le bouton Enregistrer.

J'ai eu cette solution de ce link

7
Clapham

Il existe une réponse fiable sur le site Web Wordpress:

Où est mon fichier .htaccess?

Les fichiers index.php et .htaccess de WordPress doivent être ensemble dans le fichier répertoire indiqué par le paramètre Adresse du site (URL) de votre Général Page Options. Puisque le nom du fichier commence par un point, le fichier peut ne pas être visible via un client FTP, sauf si vous modifiez le préférences de l'outil FTP pour afficher tous les fichiers, y compris le .__ caché. des dossiers. Certains hôtes (par exemple, Godaddy) peuvent ne pas afficher ou vous permettre d’éditer .htaccess si vous installez WordPress via l’hébergement GoDaddy Installation de la connexion.

Création et édition (.htaccess)

Si vous ne possédez pas déjà un fichier .htaccess, créez-en un. Si tu as Accès shell ou ssh au serveur, une simple commande tactile .htaccess va créer le fichier. Si vous utilisez FTP pour transférer des fichiers, créez un fichier fichier sur votre ordinateur local, appelez-le 1.htaccess, téléchargez-le à la racine de votre dossier WordPress, puis renommez-le en .htaccess.

Vous pouvez éditer le fichier .htaccess par FTP, Shell ou (éventuellement) votre fichier Panneau de contrôle de l'hôte.

Le code de réécriture permalien suivant doit être inclus dans votre fichier Fichier .htaccess (depuis WordPress 3.0):

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

* Extrait de ici .

6
Eric Brotto

La réponse choisie n'a pas résolu ce problème pour moi. Donc, pour ceux qui se gratifient encore la tête, j'ai trouvé une autre solution!

Dans mes paramètres Apache (httpd.conf), j'ai activé le module suivant:

LoadModule modules rewrite_module/mod_rewrite.so

Et maintenant, le site fonctionne comme prévu.

4
lukeocom

Cela a fonctionné pour moi comme ceci:

Allez dans Tableau de bord Admin Wordpress> "Paramètres"> "Permaliens"> "Paramètres communs", réglez le bouton radio sur "Structure personnalisée" et collez-le dans la zone de texte:

/index.php/%year%/%monthnum%/%day%/%postname%/

et cliquez sur le bouton Enregistrer.

3
Seth 666

Hie, 

En retard Si vous rencontrez des problèmes similaires, voici ce que vous pouvez faire pour autoriser des liens permanents en modifiant votre fichier hôte virtuel ou en tout lieu hébergeant vos sites WP. 

Donc, fondamentalement, tout fonctionne bien - vous configurez des permaliens pour poster et l’URL disparaît soudainement. Vous avez consulté beaucoup de forums de discussion (comme moi), essayé beaucoup de modifications et obtenu des erreurs "Autorisation au serveur 403" ou une erreur URL non trouvée. Tout ce que vous avez à faire est d’accéder au fichier hôte, par exemple 000-default.conf si vous utilisez un hôte virtuel par défaut ou votre fichier de configuration dans des sites compatibles, 

utiliser dans la section répertoire:

<Directory "path/to/dir">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>

Ne pas utiliser le répertoire interne suivant

Order allow,deny
Allow from all

les directives Order et Allow sont obsolètes dans Apache 2.4 .

De même, vous pouvez configurer le répertoire dans /etc/Apache2/Apache2.conf, définir le répertoire de votre chemin et ne pas utiliser ce qui précède - cela causera une erreur d'autorisation 403. 

En plus de cela, vous devrez activer mod_rewrite pour Apache

2
Deepesh Thapa

Voici une autre version pour Wordpress, la version originale ne fonctionnait pas comme prévu.

# BEGIN WordPress
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^index\.php$ - [END]
    RewriteCond $1 ^(index\.php)?$ [OR]
    RewriteCond $1 \.(gif|jpg|png|ico|css|js)$ [NC,OR]
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^(.*)$ - [END]
    RewriteRule ^ /index.php [L]
</IfModule>
# END WordPress

Référence de ce Github repository , modifié un peu. Après des tests excessifs, cette règle ne résout pas tous les problèmes. Nous avons une boutique en ligne Wordpress, qui a 40 plugins et quelque part est là un choc de réécriture. J'espère sincèrement que la prochaine version de Wordpress n'aura pas de réécriture d'URL.


RewriteRule ^index\.php$ - [L]

 Syntax Rewrite Rule

^ signifie le début de la chaîne, \ échappe à . ou signifierait n'importe quel caractère, et $ à la fin de la chaîne.

^index\.php$ si http (s): // nom_hôte/index.php- ne rien faire L'attribut [END] peut être utilisé pour mettre fin non seulement au cycle de traitement de réécriture en cours, mais également empêcher tout traitement de réécriture ultérieur.


RewriteCond $1 ^(index\.php)?$ [OR]

 Syntax Rewrite Condition

Dans RewriteCond, utiliser $1 comme chaîne de test renvoie au contenu capturé de tout, du début à la fin de l'URL http (s): // nom_hôte/bla/bla.php. S'il est utilisé en substitution ou en condition, il fait référence à une référence arrière capturée. RewriteRule (bla)/(ble\.php)$ - pour http (s): // nom_hôte/bla/ble.php enregistre bla dans $1 et ble.php dans $2. Plusieurs groupes de capture sont accessibles via $3..N.

( ) regroupe plusieurs caractères en une seule unité, ? force la correspondance. L'indicateur facultatif .[OR] vous permet de combiner des conditions de réécriture avec une relation logique OR, par opposition à AND par défaut.

En bref, si bla/bla.php contient index.php OR condition suivante 


RewriteCond $1 \.(gif|jpg|png|ico|css|js)$ [NC,OR]

( ) regroupe plusieurs caractères en une seule unité, | sépare les caractères en sous-groupes et les conditionne si l'un des indicateurs .[NC] provoque la correspondance de RewriteRule de manière à ne pas distinguer la casse.

En bref, si bla/bla.php se termine par l’un des types de fichiers OR condition suivante


RewriteCond %{REQUEST_FILENAME} -f [OR]

Les variables-serveur sont des variables de la forme% {NAME_OF_VARIABLE}, où NAME_OF_VARIABLE peut être une chaîne extraite de la liste suivante:

 enter image description here

%{REQUEST_FILENAME} est le chemin d'accès complet du système de fichiers local au fichier ou au script correspondant à la demande, si cela a déjà été déterminé par le serveur au moment où REQUEST_FILENAME est référencé. Sinon, comme lorsqu’il est utilisé dans un contexte d’hôte virtuel, la même valeur que REQUEST_URI. En fonction de la valeur de AcceptPathInfo, le serveur peut avoir utilisé uniquement certains composants principaux de REQUEST_URI pour mapper la demande à un fichier.

-f vérifier le fichier régulier. Traite la chaîne de test en tant que chemin et teste si elle existe ou non.

En bref, si bla/bla.php est un fichier OR condition suivante


RewriteCond %{REQUEST_FILENAME} -d

-d vérifier le répertoire. Traite la chaîne de test comme un chemin et teste si elle existe ou non.

En bref, si bla/bla.php est un répertoire


RewriteRule ^(.*)$ - [END] not as in Github [S=1]

Cette instruction n'est exécutée que si l'une des conditions renvoie true.

. correspond à n'importe quel caractère * zéro ou plusieurs fois.

L'indicateur [S] est utilisé pour ignorer les règles que vous ne souhaitez pas exécuter. La syntaxe de l'indicateur de saut est [S=N], où N représente le nombre de règles à ignorer (à condition que les correspondances RewriteRule). Cela peut être considéré comme une instruction goto dans votre jeu de règles de réécriture. Dans l'exemple suivant, nous souhaitons uniquement exécuter RewriteRule si l'URI demandé ne correspond pas à un fichier réel.

Bref, ne rien faire


RewriteRule ^ /index.php [L]

L'indicateur [L] provoque l'arrêt du traitement de l'ensemble de règles par mod_rewrite. Dans la plupart des contextes, cela signifie que si la règle correspond, aucune autre règle ne sera traitée. Cela correspond à la dernière commande dans Perl ou à la commande break en C. Utilisez cet indicateur pour indiquer que la règle en cours doit être appliquée immédiatement sans tenir compte d'autres règles.

En bref, réécrivez chaque chemin sous la forme http (s): // nom_hôte/index.php


Je suis allé chercher ce petit document dans la documentation d'apaches.org. Liens ci-dessous.

1
Ako

dans réglage> permaliens wordpress régler simple et tester à nouveau.

0
Omid Ahmadyani

J'ai le même problème. On peut accéder à ma page d’accueil, mais l’article n’est tout simplement pas trouvé sur le serveur.

Allez à cpanel file manager > public_html et supprimez .htaccess.

Accédez ensuite au paramètre de permalien dans WordPress, réglez-le à votre guise, puis enregistrez. Alto tout retourne à la normale.

Ce problème est survenu après la mise à jour de WordPress.

0
adite

** Résolu Permalink Issue Wordpress ** 1) Connectez-vous à wordpress dashboard> cliquez sur paramètres> premalinks> puis sélectionnez le nom du message. 2) Après cela, connectez-vous au serveur d’hébergement, allez au fichier .htaccess et remplacez le code.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
0
Ashar Zafar

Assurez-vous que mode_rewrite est activé dans les paramètres Apache. Voir le lien ici https://github.com/h5bp/server-configs-Apache/wiki/How-to-enable-Apache-modules

Assurez-vous ensuite que vous avez le bon fichier .htaccess https://wordpress.org/support/topic/404-errors-with-permalinks-set-to-postname/

Et corrigez les paramètres de l'hôte virtuel dans les paramètres Apache Comment définir AllowOverride all

0
MSaudi