Page 1 of 1
[Gelöst] pretty url bei version 1.6.3 funktioniert nicht
Posted: Thu Aug 13, 2009 5:59 pm
by Peter38
@all
nach dem Stöbern hier im Forum und dem Rumprobieren von verschiedenen Lösungsvorschlägen komme ich nicht weiter bei der Bildung von pretty urls.
config.php
$config['url_rewriting'] = 'mod_rewrite';
$config['page_extension'] = '/';
$config['use_hierarchy'] = true;
$config['query_var'] = 'page';
==> Pretty Url's werden (ohne index.php/) generiert. Aber logischerweise werden die Seiten nicht gefunden.
.htaccess
#AddHandler php5-cgi .php
#php_value max_execution_time 60
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
# 301 Redirect all requests that don't contain a dot or trailing slash to
# include a trailing slash
# RewriteCond %{REQUEST_URI} !/$
# RewriteCond %{REQUEST_URI} !\.
RewriteRule ^News/rss(.+)$ index.php?page=News/rss$1
# RewriteRule ^(.*) %{REQUEST_URI}/ [R=301,L]
# Rewrites urls in the form of /parent/child/
# but only rewrites if the requested URL is not a file or directory
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)(.html)?$ index.php?page=$1 [QSA]
==> Jetzt wird ein Serverfehler (Fehler 500) produziert. Meine Homepage ist nicht mehr aufrufbar.
#Options +FollowSymLinks
#RewriteEngine on
RewriteBase /
==> Wenn ich nun die Zeilen mit # wieder aussteuere, ist meine Homepage wieder aufrufbar, aber die Unterseiten nicht, da durch "mod_rewrite" die pretty url erzeugt wird.
Ich weiß mir keinen Rat mehr, was ich hier noch ändern kann, damit die URL ohne die index.php angezeigt wird.
Meine Seite: http://www.motouren.de
Gruß
Peter
Re: pretty url bei version 1.6.3 funktioniert nicht
Posted: Fri Aug 14, 2009 6:35 am
by antibart
Ich hab jetzt die Syntax der Regeln nicht haargenau überprüft. Aber es scheinen auf den ersten Blick die gleichen zu sein, die ich auch benutze.
Zunächst muss der Provider mod_rewrite natürlich unterstützen - ich gehe mal davon, dass du sicher bist, dass das bei dir der Fall ist.
Hast du es schon mal mit mod_rewrite und einer anderen Dateiendung probiert?
Ersetz in der config.php doch mal
$config['page_extension'] = '/';
durch
$config['page_extension'] = '.html';
Denn ein "/" am Ende einer URL kann mitunter als Verzeichnis-Pfad verstanden werden.
Und wenn in der Regel steht:
# but only rewrites if the requested URL is NOT a file or directory
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)(.html)?$ index.php?page=$1 [QSA]
.. und du slash "/" als Page-Extension verwendest, wird wohlmöglich davon ausgegangen, dass es sich um ein Verzeichnis handelt - also wird (siehe roter Text), nichts überschrieben... zumal du ja auch use_hierarchy auf true gesetzt hast.
Ich gebe zu, dass mir die Syntax der Regeln in der .htaccess auch nicht zu 100% vertraut ist. Aber ich benutze die selben Rules wie Du. Und mit der Endung .html hat es bislang immer geklappt. Auch in 1.6.3
Hier zur Sicherheit nochma meine (funktionierenden) rewrite-rules. Müssten aber identisch mit deiner sein,
Code: Select all
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
# 301 Redirect all requests that don't contain a dot or trailing slash to
# include a trailing slash
# RewriteCond %{REQUEST_URI} !/$
# RewriteCond %{REQUEST_URI} !\.
RewriteRule ^News/rss(.+)$ index.php?page=News/rss$1 [S=1]
# RewriteRule ^(.*) %{REQUEST_URI}/ [R=301,L]
# Rewrites urls in the form of /parent/child/
# but only rewrites if the requested URL is not a file or directory
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)(.html)?$ index.php?page=$1 [QSA]
und die config
Code: Select all
$config['url_rewriting'] = 'mod_rewrite';
$config['page_extension'] = '.html';
$config['use_hierarchy'] = true;
$config['query_var'] = 'page';
Re: pretty url bei version 1.6.3 funktioniert nicht
Posted: Fri Aug 14, 2009 10:49 am
by Peter38
Hallo antibart,
vielen Dank für die Info. Aber keine Chance. Auch mit der Endung '.html' erscheint der Serverfehler (Error 500). Bei gelöschter .htaccess wird zwar der Seitenname geändert (= ohne "index.php") aber dafür wird dann die Seite nicht gefunden.
Gruß
Peter
Re: pretty url bei version 1.6.3 funktioniert nicht
Posted: Fri Aug 14, 2009 4:56 pm
by nockenfell
Bei mir habe ich folgende Einstellungen in der .htaccess. Diese habe ich heute frisch in eine neue 1.6.3 Installation implementiert:
.htaccess:
Code: Select all
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
# ReWrite Rule für News-Feed
RewriteRule ^News/rss(.+)$ index.php?page=News/rss$1 [S=1]
# 301 Redirect all requests that don't contain a dot or trailing slash to
# include a trailing slash
# RewriteCond %{REQUEST_URI} !/$
# RewriteCond %{REQUEST_URI} !\.
# RewriteRule ^(.*) %{REQUEST_URI}/ [R=301,L]
# Rewrites urls in the form of /parent/child/
# but only rewrites if the requested URL is not a file or directory
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+).htm$ index.php?page=$1 [QSA]
# Beginn CMSMS Security Einstellungen.
# Directory Browsing abschalten
Options -Indexes
Options +FollowSymLinks
# Zugriff auf config.php verbieten.
<Files "config.php">
order allow,deny
deny from all
</Files>
# No sense advertising what we are running
ServerSignature Off
# Spambots nach User_agent aussperren
RewriteCond %{HTTP_USER_AGENT} ^.*Whacker.*$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailCollector [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailWolf [OR]
RewriteCond %{HTTP_USER_AGENT} ^.*FileHound.*$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^.*TurnitinBot.*$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^.*JoBo.*$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^.*adressendeutschland.*$
RewriteRule ^.* - [F]
# 1. unterbindet, das fremde Seiten geladen werden
RewriteCond %{QUERY_STRING} ^(.*)=http://(.*) [OR]
# 2. blockiert libwww (Ausgangspunkt f¸r diverse Hackversuche)
RewriteCond %{HTTP_USER_AGENT} ^libwww [OR]
# Blockiert Skripte, die versuchen, base64 encodierten Unsinn via URL zu versenden
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
# Blockiert Skripte, die einen a ********** Tag in der URL enthalten
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
# Blockiert Skripte, die versuchen, PHP GLOBALS Variablen via URL zu ver‰ndern
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Blockiert Skripte, die versuchen, eine _REQUEST Variable via URL zu ver‰ndern
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) [OR]
# END Optional Settings
in der config.php habe ich folgendes stehen:
Code: Select all
#------------
#URL Settings
#------------
#What type of URL rewriting should we be using for pretty URLs? Valid options are:
#'none', 'internal', and 'mod_rewrite'. 'internal' will not work with IIS some CGI
#configurations. 'mod_rewrite' requires proper apache configuration, a valid
#.htaccess file and most likely {metadata} in your page templates. For more
#information, see:
#http://wiki.cmsmadesimple.org/index.php/FAQ/Installation/Pretty_URLs#Pretty_URL.27s
$config['url_rewriting'] = 'mod_rewrite';
#Extension to use if you're using mod_rewrite for pretty URLs.
$config['page_extension'] = '.htm';
#If you're using the internal pretty url mechanism or mod_rewrite, would you like to
#show urls in their hierarchy? (ex. http://www.mysite.com/parent/parent/childpage)
$config['use_hierarchy'] = true;
#If using none of the above options, what should we be using for the query string
#variable? (ex. http://www.mysite.com/index.php?page=somecontent)
$config['query_var'] = 'page';
Re: pretty url bei version 1.6.3 funktioniert nicht
Posted: Fri Aug 14, 2009 5:42 pm
by Peter38
Erstmal danke nockenfell.
In meiner config.php steht das gleiche wie bei dir.
Aber leider funktioniert es auch mit deiner Version der htaccee Datei nicht. Es erscheint wieder der mir bekannte Serverfehler:
Serverfehler!
Die Anfrage kann nicht beantwortet werden, da im Server ein interner Fehler aufgetreten ist. Der Server ist entweder überlastet oder ein Fehler in einem CGI-Skript ist aufgetreten.
Sofern Sie dies für eine Fehlfunktion des Servers halten, informieren Sie bitte den Webmaster hierüber.
Error 500
Gruß
Peter
Re: pretty url bei version 1.6.3 funktioniert nicht
Posted: Sun Aug 16, 2009 8:53 am
by Peter38
Keiner von den Fachleuten hier eine Ahnung, wie ich die URL ohne index.php darstellen kann?
Schade.
Gruß
Peter
Re: pretty url bei version 1.6.3 funktioniert nicht
Posted: Sun Aug 16, 2009 10:25 am
by RonnyK
Hasst du es schon versucht mit den .htaccess aus den DOCS-folder, wobei die da htaccess.txt heisst. Die kannst du umbenannen zum .htaccess und im haupt-ordner setzen. Danach soll die "mod_rewrite" aktiviert werden im config.php.
Ronny
Re: pretty url bei version 1.6.3 funktioniert nicht
Posted: Mon Aug 17, 2009 10:21 am
by cyberman
In der aktuellen 1.6.4 gabs auch eine Fehlerkorrektur zum Thema PrettyURLs - evtl. hilft dir das weiter ...
Re: pretty url bei version 1.6.3 funktioniert nicht
Posted: Mon Aug 17, 2009 2:28 pm
by Peter38
So, jetzt funktioniert das ganze. Es lag wohl doch an einer fehlenden bzw. fehlerfaften Einstellung meines Providers.
Vielen Dank an alle, die mir geholfen haben.
Gruß
Peter