2016-06-13 19 views
1

Ich habe ein Problem, wenn ich versuche, Variable in PHP für den Zugriff auf GET während .htaccess-Datei mit der URL in SEO freundlichen Stil neu zu schreiben.PHP .htaccess Fehler beim Passieren GET Variablen

Mit einer URL wie www.example.com/blog/index.php?article=foo-bar kann ich die Seite korrekt laden, aber wenn ich etwas wie www.example.com/blog/article/foo- bar/Ich habe eine Weiterleitung zur Indexseite erhalten.

Hier ist meine .htaccess-Datei (beachten Sie, dass ich eine Regel bin mit der index.php in der URL entfernen)

Options +FollowSymLinks 

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /blog/index.php?/$1 [L] 
RewriteRule ^article/([a-zA-Z0-9]+)/$ /blog/index.php?article=$1 [QSA,L] 
RewriteRule ^category/([a-zA-Z0-9]+)/$ /blog/index.php?category=$1 [QSA,L] 
RewriteRule ^adm/$ /blog/index.php?page=admin [QSA,L] 

Da antwortete ein Benutzer auf eine andere Stelle mir diese Korrektur veröffentlichen, sondern produziert ein Fehler 500, ich habe keine Antworten über den 500 Fehler.

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -f 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule^- [L] #This cause the error 500 
RewriteRule ^article/([a-zA-Z0-9]+)/$ /blog/index.php?article=$1 [QSA,L] 
RewriteRule ^category/([a-zA-Z0-9]+)/$ /blog/index.php?category=$1 [QSA,L] 
RewriteRule ^adm/$ /blog/index.php?page=admin [QSA,L] 
RewriteRule ^(.*)$ /blog/index.php?/$1 [L] # This too cause an error 500 in this position 

Durch die Art und Weise, wenn ich einen Link zu einer Kategorie refered klicken, anstatt nur einschränken ich die vollständige Liste des Artikels, wie die Homepage bekam auf einen Artikel in der ausgewählten Kategorie.

Danke, für

Antwort

1

diese Regeln Versuchen:

RewriteEngine On 

RewriteCond %{ENV:REDIRECT_STATUS} . [OR] 
RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule^- [L] 

RewriteRule ^article/([\w-]+)/?$ /blog/index.php?article=$1 [QSA,L,NC] 

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

RewriteRule ^adm/?$ /blog/index.php?page=admin [QSA,L,NC] 

RewriteRule ^(.*)$ /blog/index.php?/$1 [L,QSA] 
+0

I 500 zu – andreaem

+0

einen Fehler bekam Können Sie Apache error.log überprüfen und sehen, was der Fehler ist? Wo befindet sich dieser .htaccess? – anubhava

+0

mein error.log befindet sich in var/log/apache2 leer ist, habe ich versucht, die loglevel an info in Apache-Konfiguration zu setzen, aber immer noch leer – andreaem

3

helfen müssen, mit denen Sie testen OR:

RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule^- [L]