2017-01-31 6 views
1

im Stammverzeichnis ich gezwungen bin www. über .htaccessWie kombinieren Sie www und nettere URLs?

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteCond %{HTTP_HOST} !^www\.example\.org$ [NC] 
    RewriteRule ^(.*)$ http://www.example.org/$1 [R=301,L] 
</IfModule> 

So wird example.orgwww.example.org.

In einem Unterverzeichnis /products Ich habe eine andere .htaccess mit einem Rewrite für die Nutzung von schöneren URLs mit statt Suche Schrägstriche abfragt

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase /products/ 
    rewriteRule  ^(([a-z0-9\-]+/)*[a-z0-9\-]+)$ $1/        [NC,R=301,L] 
    RewriteRule  ^([a-z0-9-]+)/([0-9-]+)/$  products.php?name=$1&version=$2  [NC] 
    RewriteRule  ^([a-z0-9-]+)/$     products.php?name=$1    [NC] 
</IfModule> 

Aus irgendeinem Grund, wenn ich example.org/products/ kein www. erzwungen eingeben. Behebt die Unterverzeichnisregel diese Regel irgendwie? Wie mache ich das richtig?

Antwort

1

Dies ist, weil Apache liest nicht Ihre Wurzel htaccess. Apache liest Ihren Unterordner htacess für Unterordneranforderungen. Um www für/products/zu erzwingen, müssen Sie die folgende Regel in Ihre /products/.htaccess setzen

+0

Scheint mir recht. In der Zwischenzeit habe ich es mit einem ähnlichen Ansatz behoben, indem ich das Unterverzeichnis '.htaccess' gelöscht habe und den entsprechend geänderten Code zum root hinzugefügt habe. Aber wahrscheinlich ist das Ändern des Unterverzeichnisses '.htaccess' effizienter. – Daniel

Verwandte Themen