2016-08-04 22 views
0

Ich habe ein Problem mit meiner Root-.htaccess-Datei.HTACCESS Bedingungen und/oder Rewrites funktionieren NICHT

Das ist meine .htaccess-Datei:

<IfModule mod_rewrite.c> 
RewriteEngine on 
RewriteBase/

# START 
RewriteRule ^$ index.php [QSA,L] 

# PAGE 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteCond %{HTTP_HOST} !category 
RewriteRule ^([A-Za-z0-9_-]+)/?$ index.php?page=$1 [QSA,L] 

# POST 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteCond %{HTTP_HOST} !category 
RewriteRule ^([A-Za-z0-9_-]+)/([A-Za-z0-9_-]+)/?$ index.php?page=$1&post=$2 [QSA,L] 

# CATEGORY 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteCond %{HTTP_HOST} category 
RewriteRule ^category$ category.php [QSA,L] 

# SINGLE CATEGORY 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteRule ^category/([A-Za-z0-9_-]+)/?$ category.php?category=$1 [QSA,L] 

# XML SITEMAP 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^sitemap\.xml$ sitemap.php [L] 
</IfModule> 

Als ich

www.pixel-factory.at/category

als Folge ich zu gehen versuchen bekomme eine leere "Seite". Das bedeutet, es zu

geht www.pixel-factory.at/index.php?page=category

(was existiert nicht) anstelle von www zu gehen

.pixel-factory.at/category.php

Bitte jemand helfen, kann es nicht schaffen. Vielen Dank!

+0

Immer noch das gleiche ... –

Antwort

0

Sie können Ihre Bedingungen kürzer Ihren Code Refactoring, entfernen RewriteCond %{HTTP_HOST} category Zustand überall und neu anordnen Ihre Regeln allgemeinen Regeln am Ende zu halten:

DirectoryIndex index.php 
RewriteEngine on 
RewriteBase/

# XML SITEMAP 
RewriteRule ^sitemap\.xml$ sitemap.php [L] 

# skip all rules from existing files or directories 
RewriteCond %{REQUEST_FILENAME} -d [OR] 
RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule^- [L] 

# CATEGORY 
RewriteRule ^category/?$ category.php [NC,L] 

# SINGLE CATEGORY 
RewriteRule ^category/([\w-]+)/?$ category.php?category=$1 [NC,QSA,L] 

# search term 
RewriteRule ^search/([\w-]+)/?$ search.php?search=$1 [NC,QSA,L] 

# PAGE 
RewriteRule ^([\w-]+)/?$ index.php?page=$1 [QSA,L] 

# POST 
RewriteRule ^([\w-]+)/([\w-]+)/?$ index.php?page=$1&post=$2 [QSA,L] 
+0

Danke, werde ich geben es ist ein Versuch! Wofür steht '(\ w +)'? –

+0

'\ w' ist das gleiche wie' [a-zA-Z0-9_] ' – anubhava

+0

Aber ich brauche auch den Bindestrich? Und warum muss ich das NC-Flag für die Category Rewrites verwenden? –