web-dev-qa-db-fra.com

Les modifications apportées à la structure permalink génèrent une erreur 404 pour toutes les pages autres que home

Lorsque je modifie la structure de permalien sur mon site, une erreur 404 s'affiche pour chaque page, à l'exception de la page d'accueil. J'ai vu d'autres questions qui mentionnent la réinitialisation de la structure de lien permanent pour que cela fonctionne, mais cela ne fonctionne pas pour moi (utiliser la valeur par défaut de? P = 123 affiche les publications, mais je reviens au mois et au nom 2012/03/sample-post/provoque le 404).

Avec la structure permalink définie sur month et name, le fichier htaccess est:

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

# END WordPress

Le fichier htaccess mis à jour par wordpress se trouve dans le répertoire/etc/wordpress et les détails sont les suivants:

-rw-r--r-- 1 www-data root      934 2012-03-10 19:13 htaccess

Le fichier index.php se trouve dans le répertoire/var/www:

<?php
/**
 * Front to the WordPress application. This file doesn't do anything, but loads
 * wp-blog-header.php which does and tells WordPress to load the theme.
 *
 * @package WordPress
 */

/**
 * Tells WordPress to load the WordPress theme and output it.
 *
 * @var bool
 */
define('WP_USE_THEMES', true);

/** Loads the WordPress Environment and Template */
require('./wordpress/wp-blog-header.php');
?>

Dois-je apporter d'autres modifications pour permettre de modifier les permaliens?

Mettre à jour

Ceci fonctionne sur une machine Linux à laquelle j'ai un accès root. J'ai activé mod_rewrite, mais j'ai obtenu les mêmes résultats: les permaliens par défaut fonctionnent, mais la modification de la structure ne fonctionne pas. J'ai aussi/wordpress dans chaque URL, comme wordpress /? Page_id = 31 et la mise à jour de l'URL dans les paramètres Wordpress n'aide pas. C’est très probablement une question distincte - je vais poser la question séparément, mais je voulais fournir les informations au cas où elles seraient pertinentes.

2
Tai Squared

Souhaitez-vous que le site soit rendu sous www.thesite.com/news ou www.thesite.com/wordpress/news

Si seulement www.thesite.com/news, essayez ce changement:

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

Dans votre question, vous avez posté ceci:

-rw-r--r-- 1 www-data root      934 2012-03-10 19:13 htaccess

Apache examine un fichier appelé .htaccess qui n'est pas présent dans votre système de fichiers.

Renommer htaccess -> .htaccess

0
Tom J Nowell

Vous avez besoin de la prise en charge de mod_rewrite sur votre serveur. Assurez-vous que votre serveur prend en charge mod_rewrite et qu'il est activé. Si vous avez accès à la racine de votre serveur, vous pouvez activer mod_rewrite à partir du fichier httpd.conf d'Apache. Ouvrez ce fichier dans n’importe quel éditeur de texte brut et recherchez la ligne suivante:

LoadModule rewrite_module modules/mod_rewrite.so

Assurez-vous que cette ligne n'est pas commentée, cela signifie que cette ligne ne ressemble pas à ceci:

#LoadModule rewrite_module modules/mod_rewrite.so

Si tel est le cas, supprimez le premier caractère "#" et enregistrez ce fichier. Redémarrez votre serveur et essayez à nouveau votre lien permanent. Ça devrait marcher.

Si cela ne fonctionne toujours pas pour vous, cela est peut-être dû aux extensions FrontPage. Avez-vous installé les extensions FrontPage récemment? Si tel est le cas, supprimez-les. J'ai déjà rencontré le même problème auparavant et cela semblait être causé par les extensions FrontPage. Une fois que vous les supprimez, accédez à votre administrateur Wordpress et désactivez le lien permanent (rétablissez-le dans la structure? P = 000. Supprimez ensuite votre fichier .htaccess de Wordpress (et de la racine également, si Wordpress n'est pas installé sur votre racine) Retournez dans votre administrateur Wordperss et définissez un nouveau lien permanent comme vous le souhaitez ... voyez si cela fonctionne cette fois-ci.

J'espère que cette information aide. Indiquez-nous si l'une de ces solutions vous a aidé à résoudre votre problème. :-)

À votre santé,

Ruturaj.

0
Ruturaj

Dans mon cas:

  1. "AllowOverride FileInfo" au lieu de "AllowOverride None" pour le dossier www.
  2. Décommentez "LoadModule modules rewrite_module/mod_rewrite.so" (supprimez le symbole "#").

Ça marche!

0
Splash