web-dev-qa-db-fra.com

Problème de nettoyage des URL à l'aide de .htaccess dans le projet PHP

Je travaille sur un projet PHP laravel. Je suis actuellement confronté à des problèmes avec le fichier .htaccess. J'ai suivant . Htaccess:

<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>

Quand j'ai rechargé ma page, cela m'a donné l'erreur suivante:

404 Not Found

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

Ensuite, j'ai ouvert le fichier /etc/Apache2/users/username.conf qui contenait la ligne de code suivante:

<Directory "/Users/username/Sites/">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

Dans le code ci-dessus, j'ai changé AllowOverride None en AllowOverride All. Ensuite, j'ai rechargé la page et j'ai eu l'erreur suivante:

403 Forbidden

You don't have permission to access /contacts on this server.

Quand j'ajoute FollowSymLinks à .htaccess fichier Options comme celui-ci Options -MultiViews FollowSymLinks. Alors parfois, j'obtiens ceci 500 Erreur de serveur interne erreur et parfois ceci * Erreur 324 (net :: ERR_EMPTY_RESPONSE): le serveur a fermé la connexion sans envoyer de données *. Chaque fois que je recharge ma page, une de ces erreurs avec l'option FollowSymLinks.

J'ai également commenté les lignes suivantes dans /etc/Apache2/httpd.conf:

LoadModule rewrite_module libexec/Apache2/mod_rewrite.so
LoadModule php5_module libexec/Apache2/libphp5.so

et je reçois toujours la même permission, erreur refusée.

S'il vous plaît, aidez-moi, j'essaie de résoudre ce problème depuis 3 jours, mais il n'est pas encore résolu.

2
x4ph4r

Veuillez vérifier si /contacts existe avec une autorisation de dossier de 755. Les fichiers sous /contacts doivent avoir une autorisation de 644.

Renommez également votre fichier . Htaccess actuel et créez un nouveau fichier . Htaccess avec le code suivant.

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

Définissez également Allowoverride comme None dans le fichier . Conf.

1
Nilabh

Je pense que vous voulez supprimer l'extension .php, je vais donc vous donner le code . Htaccess pour accomplir cela:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

Cela devrait être situé dans le répertoire racine.

Donc supposons qu'il y ait un fichier dans le dossier racine nommé index.php, vous pouvez alors y accéder à: site/index. Et s'il existe un dossier appelé contact avec un fichier appelé contactnow, vous pouvez y accéder à partir de: site/contact/contactnow

J'espère que vous avez compris comment fonctionne ce code.

1
Hassan Althaf

403 Interdit Vous n'êtes pas autorisé à accéder à/contacts sur ce serveur

Assurez-vous que les dossiers Utilisateurs, Nom d'utilisateur et Sites sont chmod 755.

chmod -R 755 /home
1
Simon Hayter