web-dev-qa-db-de.com

Apache: Virtueller Host in .htaccess für URL-Umschreibung funktioniert nicht

Ich habe einen virtuellen Host auf meinem lokalen Computer konfiguriert und alles funktioniert einwandfrei. Jetzt möchte ich SEO-freundliche URLs verwenden. Um dies zu erreichen, habe ich die .htaccess-Datei verwendet.

Meine virtuelle Host-Konfiguration lautet:

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

und meine .htaccess-Datei hat:

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 

Die obige .htaccess-Einstellung funktioniert nicht. Danach habe ich meine virtuelle Host-Einstellung geändert und es funktioniert. Die neue Einstellung für den virtuellen Host lautet:

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

Bitte lassen Sie mich wissen, wo ich beim Umschreiben der URL in der .htacess-Datei einen Fehler mache. Ich möchte die Einstellungen im virtuellen Host nicht verwenden, da ich Apache bei jeder Änderung neu starten muss.

3
parth

Sie müssen AllowOverride All in den Abschnitt <Directory/> der Serverkonfiguration einfügen.

Die einzigen Apache-Konfigurationsdateien, die Optionen zulassen können, sind diejenigen, die sich direkt auf dem Server befinden (Hauptdatei, virtueller Host usw.).

Die .htaccess-Datei kann nur entfernen Rechte überschreiben.

Das ist:

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

und die .htaccess-Datei:

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