web-dev-qa-db-fra.com

Comment puis-je activer des URL propres?

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?

5
sjkon

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:

  • Le module mod_rewrite est activé pour le serveur
  • Les directives suivantes sont présentes dans le fichier de configuration Apache

    AllowOverride All
    AccessFileName .htaccess
    
13
kiamlaluno

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
7
Muhammad Reda

Comment j'ai résolu mon problème:

URLs propres:

  1. Activez le mod_rewrite avec cette commande:

    a2enmod rewrite
    
  2. 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.

  3. Redémarrez Apache

4
sokratis

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.

3
D34dman

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
1
Nitesh Sethia

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.

1
user50292

Nous devons décommenter ou ajouter la ligne:

LoadModule rewrite_module modules/mod_rewrite.so

autoriser mod_rewrite Module Apache.

0
user2630080