web-dev-qa-db-fra.com

Apache: l'hôte virtuel dans .htaccess pour la réécriture d'URL ne fonctionne pas

J'ai configuré un hôte virtuel sur ma machine locale et tout fonctionne correctement. Maintenant, je veux utiliser des URL conviviales pour le référencement. Pour ce faire, j'ai utilisé le fichier .htaccess.

La configuration de mon hôte virtuel est:

<VirtualHost *:80>

    DocumentRoot "C:/xampp/htdocs/ypp"
    ServerName ypp.com
    ServerAlias www.ypp.com
    ##ErrorLog "logs/dummy-Host2.localhost-error.log"
    ##CustomLog "logs/dummy-Host2.localhost-access.log" combined
</VirtualHost>

et mon fichier .htaccess a:

AllowOverride All
RewriteEngine On 
RewriteBase /ypp/ 
RewriteRule ^/browse$ /browse.php 
RewriteRule ^/browse/([a-z]+)$ /browse.php?cat=$1 
RewriteRule ^/browse/([a-z]+)/([a-z]+)$ /browse.php?cat=$1&subcat=$2 

Le paramètre .htaccess ci-dessus ne fonctionne pas. Après cela, j'ai modifié les paramètres de mon hôte virtuel et cela fonctionne. Le nouveau paramètre d'hôte virtuel est le suivant:

<VirtualHost *:80>

    RewriteEngine On
    RewriteRule ^/browse$ /browse.php
    RewriteRule ^/browse/([a-z]+)$ /browse.php?cat=$1
    RewriteRule ^/browse/([a-z]+)/([a-z]+)$ /browse.php?cat=$1&subcat=$2
    ServerAdmin [email protected]
        DocumentRoot "C:/xampp/htdocs/ypp"
    ServerName ypp.com
    ServerAlias www.ypp.com
    ##ErrorLog "logs/dummy-Host2.localhost-error.log"
    ##CustomLog "logs/dummy-Host2.localhost-access.log" combined
    <Directory "C:/xampp/htdocs/ypp">
        AllowOverride All
    </Directory>
</VirtualHost>

S'il vous plaît laissez-moi savoir où je me trompe dans le fichier .htacess pour la réécriture d'URL. Je ne souhaite pas utiliser les paramètres de l'hôte virtuel, car pour chaque modification, je redémarre Apache.

3
parth

Vous devez mettre AllowOverride All dans votre section <Directory/> de la configuration du serveur.

Les seuls fichiers de configuration Apache pouvant autoriser des options sont ceux qui se trouvent directement sur le serveur (fichier principal, virtualhost, etc.).

Le fichier .htaccess ne peut que supprimer remplacer les droits.

C'est:

<VirtualHost *:80>
    DocumentRoot "C:/xampp/htdocs/ypp"
    ServerName ypp.com
    ServerAlias www.ypp.com
    ##ErrorLog "logs/dummy-Host2.localhost-error.log"
    ##CustomLog "logs/dummy-Host2.localhost-access.log" combined
    <Directory "C:/xampp/htdocs/ypp">
        AllowOverride All
    </Directory>
</VirtualHost>

et le fichier .htaccess:

RewriteEngine On 
RewriteBase /ypp/ 
RewriteRule ^/browse$ /browse.php 
RewriteRule ^/browse/([a-z]+)$ /browse.php?cat=$1 
RewriteRule ^/browse/([a-z]+)/([a-z]+)$ /browse.php?cat=$1&subcat=$2 
4
sebastien