J'ai installé Drupal 7 sur le serveur Wamp. Je ne trouve aucune case à cocher ou lien pour activer les URL propres; je ne vois que le bouton Exécuter le test d'URL propre.
Comment puis-je activer des URL propres?
Les paramètres pour les URL propres sont dans admin/config/search/clean-urls.
Cette page affiche la case à cocher "Activer les URL propres" uniquement lorsqu'il est possible de les activer; lorsque le serveur n'est pas configuré pour les prendre en charge, cette page affiche le message suivant:
Les URL propres ne peuvent pas être activées. Si vous êtes dirigé vers cette page ou vers une erreur Page non trouvée (404) après avoir testé des URL propres, consultez la manuel en ligne .
Sur un serveur Apache, et avec les paramètres par défaut utilisés depuis Drupal, les URL propres fonctionnent si:
Les directives suivantes sont présentes dans le fichier de configuration Apache
AllowOverride All
AccessFileName .htaccess
Activez le mod_rewrite
module puis redémarrez le serveur de serveur.
Je pense que vous pouvez activer le mod_rewrite
à partir de l'icône de lancement rapide. Cliquez avec le bouton droit et affichez le menu des modules Apache et assurez-vous que le mod_rewrite
est autorisé.
MISE À JOUR:
Ouvrez le fichier httpd.conf
dans le dossier d'installation d'Apache et modifiez la ligne suivante:
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride None
Être:
AllowOverride All
Comment j'ai résolu mon problème:
URLs propres:
Activez le mod_rewrite
avec cette commande:
a2enmod rewrite
Ensuite, sous/etc/Apache2/sites-available, éditez le fichier "par défaut" et remplacez Override None
avec Override All
. Cela doit être changé deux fois.
Redémarrez Apache
Veuillez activer rewrite_module pour Apache à l'aide de l'interface wampserver.
Pour y accéder, cliquez sur l'icône verte "w" dans systray, allez dans Apache> Modules Apache> cliquez sur rewrite_module.
votre icône wampserver doit devenir rouge, puis orange et verte. Sinon, essayez de redémarrer wampserver. Lorsque l'icône est verte, visitez à nouveau les modules Apache et assurez-vous que rewrite_module est coché.
l'activation de rewrite_module revient essentiellement à activer mod_rewrite, mais je ne sais pas pourquoi wampserver l'appelle ainsi. J'espère que cela résoudra votre problème avec des URL propres, vous pouvez vérifier sa résolution en réexécutant le test.
Pour nettoyer l'URL ouverte Terminal -> Tapez la commande vim/etc/Apache2/sites-enabled/000-default
Cela ouvrirait le fichier 000 par défaut là où vous verriez
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride none
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${Apache_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${Apache_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
Sélectionnez donc le code entier et mettez-le à la place du code dans le fichier 000 par défaut.
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${Apache_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${Apache_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
Redémarrez maintenant le serveur aparche en utilisant
Sudo service Apache2 restart
Vous pouvez l'utiliser par .htaccess
fichier
Trouvez d'abord cette ligne de code dans .htaccess
fichier
#RewriteBase /
et remplacez-le par la ligne de code suivante:
RewriteBase /~yoursitename/yoursitename
Retirer #
du code. Ici yoursitename
est le nom du dossier après le nom de domaine comme example.com/~yoursitename/yoursitename
.
Nous devons décommenter ou ajouter la ligne:
LoadModule rewrite_module modules/mod_rewrite.so
autoriser mod_rewrite
Module Apache.