L'activation assez permaliens sur WordPress - configuration d'apache ne fonctionne pas
Probablement cette erreur a une jolie solution facile, mais j'ai été à la recherche de moyen à long, à ce et n'ont toujours pas l'erreur. Je pense que j'ai essayé tout ce que je pouvais.
Problème: quand j'active assez permaliens sur mon installation de wordpress (donc, que c'est à l'aide de /%postname%/), il ne fonctionne pas. J'obtiens une erreur 404 sur toutes les pages sauf la page d'accueil.
Cette page http://codex.wordpress.org/Permalinks me dit que les exigences pour les permaliens de travail:
- Serveur web Apache avec le module mod_rewrite installé
- Dans WordPress répertoire home de l'
- La FollowSymLinks option est activée
- FileInfo directives autorisés (par exemple, la directive AllowOverride FileInfo ou AllowOverride All)
- Un .fichier htaccess (si ce fichier est manquant, WordPress va essayer de le créer lors de l'activation de la "jolie" permaliens)
- Si vous voulez WordPress pour mettre à jour le .fichier htaccess automatiquement, WordPress aurez besoin d'un accès en écriture au fichier.
Serveur web Apache a été installé, le module mod_rewrite a été chargé avec a2enmod rewrite commande (et le serveur a été redémarré plusieurs fois après). Ainsi, dans /etc/apache2/mods-enabled, le lien à réécrire.la charge est présente. Aussi, lorsque je lance le phpinfo de commande, je vois que le module mod_rewrite a été chargé. Vous pouvez le vérifier ici: http://namorti.com/phpinfo.php
Puis, dans /etc/apache2/sites-enabled, il n'y a pas de "défaut" est présent. J'ai copié 000-default.conf par défaut et édité par défaut par la suite. Il contient les éléments suivants:
DocumentRoot /var/www
<Directory />
Options FollowSymLinks Indexes
AllowOverride FileInfo
</Directory>
Pour autant que je suis concerné, FollowSymLinks a été activée et FileInfo directives sont admis.
Comme pour les deux derniers points, dans mon wordpress répertoire home (/var/www), .htaccess est présent et accessible en écriture par WordPress (j'ai mis à jour la structure des permaliens une couple de fois et il met à jour la .fichier htaccess en conséquence). Pour l'instant il contient les éléments suivants:
# 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
Donc, autant que je sache, il convient de travail. J'ai redémarré le serveur (service apache2 restart) plusieurs fois. Je ne vois pas ce que je suis absent. Quelqu'un a une idée ici?
Merci d'avance!
* EDIT *
Donc, j'ai fait ce que calcinai m'a dit de faire... j'ai édité mon /etc/apache2/sites-enabled/default fichier contenant le vhost). Il ressemble maintenant à ceci:
<VirtualHost *:80>
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
#ServerName www.example.com
ServerAdmin www.namorti.com
DocumentRoot /var/www
<Directory /var/www>
Options MultiViews
AllowOverride None
Order allow,deny
allow from all
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</Directory>
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
J'ai redémarré apache encore, mais malheureusement cela ne fonctionne toujours pas. Honnêtement, il ne m'aurait surpris, parce que le déplacement des directives de l' .fichier htaccess pour le vhost si le htaccess sur elle-même serait de travailler, comme tout le reste semblait suffisamment correct pour moi...
D'autres suggestions? Merci pour l'effort!
Vous devez vous connecter pour publier un commentaire.
Assurez-vous que le
AllowOverrides
directive est définie àall
dans le vhost - c'est ce qu'indique à apache de chercher.htaccess
fichiers dans la racine de votre site.Une meilleure solution est effectivement de mettre votre réécrire directives dans le vhost, comme vous l'avez clairement avoir accès en écriture au fichier. Lorsque vous avez AllowOverrides sur, apache va chercher dans le répertoire et tous les répertoires parents pour .htaccess à chaque requête, ce qui peut être un gros gain de performance.
Pour WordPress, votre serveur virtuel devrait ressembler à quelque chose comme:
FollowSymLinks
. Maintenant, il fonctionne comme un charme, alors, va le garder comme ça que c'est plus efficace. Merci!!Indexes
directive en y de vos options d'origine, mais si vous n'êtes pas vraiment à l'aide des indices que je vous recommande de le retirer car il y a eu plusieurs plugins WordPress qui étaient vulnérables, qu'il est allumé.Résolu moi-même.
Il avait à faire avec le fichier 000-default.conf" - j'ai copié sur "par défaut" et édité par "défaut", comme je l'ai déjà mentionné dans ma question.
Apparemment le service utilise le fichier 000-default.conf" sur lui-même. En copiant le "par défaut" fichier "000-default.conf" et de redémarrer le service apache, tout fonctionne maintenant.
Une mise en garde: calcinai la suggestion semble comme il devrait fonctionner, mais avec sa suggestion dans mon vhost dans le bon "000-default.conf" du fichier, j'ai une erreur 403 Forbidden. Quand j'ai remplacé le contenu de son avec mon contenu original
Et une fois de redémarrer le service apache, tout a fonctionné.
Grâce calcinai pour votre effort pour essayer de m'aider 🙂
Options
directive correctement. Je serais près à parier que si vous regardez les logs apache lorsque vous avez été d'obtenir de 403 il vous dira d'ajouterFollowSymLinks
Permalien Problème
À l'intérieur de ce fichier, nous voulons changer toutes choses.
- devrait ressembler à quelque chose comme ceci:
Si vous ne la voyez pas comme ça puis coller le code ci-dessus à l'intérieur de l'hôte virtuel
Lorsque vous avez terminé, enregistrez et fermez le fichier.
Ensuite, il faut activer le module de réécriture, qui vous permet de modifier les Url. Vous pouvez le faire en tapant:
Après avoir effectué ces modifications, redémarrez Apache:
Cela peut vous aider à résoudre ce problème:
Après avoir passé vraiment beaucoup de temps, voici ce qui a fonctionné avec succès dans ma machine Linux du serveur LAMP. Les changements suivants sont nécessaire pour moi de le faire fonctionner parfaitement,
Ajouter à votre
/etc/hosts
fichier.Ajouter un hôte entrée comme suit dans le chemin d'accès
/etc/apache2/sites-available/sitename.com.conf
Créer un lien symbolique pour les sites-enabled.
Redémarrer apache en utilisant la commande,
Cela fonctionne parfaitement pour moi. Instructions pour l'ajout d'entrée de l'hôte pris, https://www.digitalocean.com/community/questions/wordpress-permalinks-not-working-on-ubuntu-14-04