Ich habe mal wieder meine selbstgebackene config.php erweitert.
Diesmal hatte ich Probleme, weil ich mod_rewrite verwende und in der .htaccess alle Aufrufe ohne '
www.' auf die Domain mit '
www.' weiterleiten lasse. Auszug meiner .htaccess:
Code: Select all
#php_flag magic_quotes_gpc off
#php_flag register_globals off
#php_flag session.use_trans_sid off
# Switch on compression
#AddOutputFilterByType DEFLATE text/html text/css application/x-javascript
# Make sure you have Options FollowSymLinks
# and Allow on
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
# Rewrite Rules for Redirection of DOMAIN.DE to www.DOMAIN.DE
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [NE,R=301,L]
# 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}/ [NE,R=301,L]
# Rewrite rules for pages
RewriteCond %{REQUEST_FILENAME} !-f [NC]
RewriteCond %{REQUEST_FILENAME} !-d [NC]
RewriteRule ^(.+)$ index.php?page=$1 [QSA]
Mein Server-Name (aus Webserver-Sicht) ist aber ja trotzdem weiterhin ohne 'www' ist und das kann man bei 1&1 (Kundenwunsch-Hoster) auch nicht so leicht ändern.
Dadurch bekomme ich z.B. beim Einsatz von Formbuilder, aber auch bei anderen Modulen Probleme. Eigentlich überall, wo mit 'CreateFormStart()' gearbeitet wird, denn hier wird die URL (für das POST-action) neu zusammengebaut.
Ich habe nun die config.php so erweitert, dass man einen Prefix für den Server-Namen angeben kann, der dann im ganzen CMS verwendet wird. So wird z.B. mit dem Prefix '
www.' aus dem Server-Namen 'domain.de' dann '
www.domain.de'.
Hier nun wieder die komplette config.php:
Code: Select all
<?php
// CMS made simple Konfigurations Datei
// Deutsche, verbesserte Verion
// Änderungen von: Andi Petzoldt <info@petzoldt.net>
// Einstellungen für (lokalen) Entwicklungsserver
if ($_SERVER["SERVER_NAME"]=="localhost" || $_SERVER["SERVER_NAME"]=="www.localhost") {
$config['dbms'] = 'mysql'; // mysql oder mysqli
$config['db_hostname'] = 'localhost'; // MySQL Hostname
$config['db_username'] = 'root'; // MySQL Username
$config['db_password'] = ''; // MySQL Passwort
$config['db_name'] = 'cms'; // MySQL Datenbank-Name
$config["db_port"] = '3306'; // MySQL Port, meist 3306
$config['db_prefix'] = 'cms_'; // Standard ist cms_ - bei DB-Benutzung durch verschiedene CMS bzw. Applikationen kann der DB Prefix geändert werden.
$config['subdir'] = '/cms'; // Standard ist kein Unterverzeichnis (Variable leer lassen).
$config['https_url'] = ''; // Wenn Sie eine seperate URL für SSL verwenden (z.B. bei SSL-Proxies), können Sie diese hier angeben (ohne abschließenden Slash). Sonst lassen Sie den Parameter leer.
$config['server_prefix'] = ''; // Wenn Sie einen Prefix (z.B. www.) vor dem Servernamen ($_SERVER['SERVER_NAME']) verwenden wollen (ist z.B. aus SEO-Gründen oft nützlich)
$config['dev'] = true; // Verwenden Sie diesen Parameter, um in Ihren Erweiterungen/Anpassungen zwischen Entwicklungs- und Live-Server zu unterscheiden.
// Einstellungen für Live-Server
} else {
$config['dbms'] = 'mysql'; // mysql oder mysqli
$config['db_hostname'] = 'localhost'; // MySQL Hostname
$config['db_username'] = 'root'; // MySQL Username
$config['db_password'] = ''; // MySQL Passwort
$config['db_name'] = 'cms'; // MySQL Datenbank-Name
$config["db_port"] = '3306'; // MySQL Port, meist 3306, bei manchen Providern wird für MySQL 5 Datenbanken auch 3307 verwendet
$config['db_prefix'] = 'cms_'; // Standard ist cms_ - bei DB-Benutzung durch verschiedene CMS bzw. Applikationen kann der DB Prefix geändert werden.
$config['subdir'] = ''; // Standard ist kein Unterverzeichnis (Variable leer lassen).
$config['https_url'] = ''; // Wenn Sie eine seperate URL für SSL verwenden (z.B. bei SSL-Proxies), können Sie diese hier angeben (ohne abschließenden Slash). Sonst lassen Sie den Parameter leer.
$config['server_prefix'] = 'www.'; // Wenn Sie einen Prefix (z.B. www.) vor dem Servernamen ($_SERVER['SERVER_NAME']) verwenden wollen (ist z.B. aus SEO-Gründen oft nützlich)
$config['dev'] = false; // Verwenden Sie diesen Parameter, um in Ihren Erweiterungen/Anpassungen zwischen Entwicklungs- und Live-Server zu unterscheiden.
}
// PHP Memory Limit
// Wenn es Ihr Server erlaubt, können Sie hier das PHP Memory Limit anpassen
$config['php_memory_limit'] = '';
// Template-Verarbeitung
// In CMSms Versionen bis 1.4 wurden Seiten-Templates stets komplett verarbeitet
// Ab Version 1.4 wurde der "Template-Kopf" nach dem "Template-Inhalt" verarbeitet,
// um Funktionen in der Seite die Möglichkeit zu geben, den HTML-Header zu ändern.
// Wenn Sie noch mit alten Seiten-Templates arbeiten, die nicht kompatibel mit dieser
// Funktion sind, können Sie diesen Parameter aktivieren.
$config['process_whole_template'] = true;
// Debug Modus
// Hier können Sie den CMSms Debug-Modus einschalten, um PHP Warningen, Fehler,
// etc zu sehen. CSS Caching wird deaktiviert und es werden noch eine Reihe an
// Zusatz-Informationen ausgegeben.
$config['debug'] = false;
// Ausgabe Komprimierung
// Hier können Sie die CMSms Ausgabe-Komprimierung aktivieren.
// Dies ist nur sinnvoll, wenn Ihr Webserver nicht bereits den mod_deflate Parameter
// aktiviert hat.
$config['output_compression'] = true;
// Permanente Datenbank-Verbindung
// Wenn Sie die permamente Datenbank-Verbindung aktivieren, können Sie eine höhere
// Datenbank-Zugriffsgeschwindigkeit erzielen.
// Jedoch erlauben nicht alle Datenbank-Hosts diese Einstellung, zudem ist oft die
// maximale Anzahl an gleichzeitigen Datenbankverbindungen beschränkt, so dass es
// bei Aktivierung auch hier zu Problemen kommen kann.
$config['persistent_db_conn'] = true;
// ADODB lite
// Für die meisten Anwendungen mit CMSms sollte die Lite Version von ADODB ausreichen.
// Wenn Sie die Full Version von ADODB benötigen, können Sie diesen Parameter auf false
// setzen. In diesem Fall müssen Sie die Full Version von ADODB installiert haben.
$config['use_adodb_lite'] = true;
// Document Root
// Die "Root"-URL vom Webserver aus gesehen.
// Beachten Sie, dass die URL ohne endenen Slash (Schrägstrich) angegeben wedren muss.
// Beispiel: http://www.meine-domain.de
// Beispiel: http://www.meine-domain.de/unterverzeichnis
// Im folgenden Fall wird die Einstellung automatisch ermittelt. Verändern Sie diese Einstellung
// nur, wenn Sie wissen was Sie tun.
if ($_SERVER['SERVER_PORT']==443 && $config['https_url']) { $config['root_url'] = $config['https_url']; } // Seperate SSL-URL benutzen
// Normale URL- bzw. SSL-URL zusammenbauen
else {
$config['root_url'] = 'http';
if($_SERVER['SERVER_PORT']==443) { $config['root_url'].= 's'; } // Abfrage, ob eine HTTPS-Verbindung angefragt wurde
if ($config['server_prefix'] && substr($_SERVER['SERVER_NAME'],0,strlen($config['server_prefix']))==$config['server_prefix']) { $config['server_prefix'] = ''; }
$config['root_url'].= '://'.$config['server_prefix'].$_SERVER['SERVER_NAME'].$config['subdir'];
$_SERVER['SERVER_NAME'] = $config['server_prefix'].$_SERVER['SERVER_NAME'];
}
// Pfadangabe
// Die absolute Pfadangabe, wo CMSms auf dem Server installiert wurde.
// Beachten Sie, dass der Pfad ohne endenen Slash (Schrägstrich) angegeben wedren muss.
// Beispiel: /var/www/localhost
// Im folgenden Fall wird die Einstellung automatisch ermittelt. Verändern Sie diese Einstellung
// nur, wenn Sie wissen was Sie tun.
$config['root_path'] = $_SERVER["DOCUMENT_ROOT"].$config['subdir'];
// Backend-Verzeichnis
// Name des Backend-Verzeichnis.
// Standard ist admin
$config['admin_dir'] = 'admin';
// Verzeichnis für Cache
// Hier können Sie angeben, wo Cache-Dateien gespeichert werden sollen.
$config['previews_path'] = $config['root_path']."/tmp/cache";
// Verzeichnis für Uploads
// Hier können Sie angeben, wo Upload-Dateien gespeichert werden sollen.
$config['uploads_path'] = $config['root_path']."/uploads";
// URL für Uploads
// Geben Sie hier die URL an, unter welcher die Uploads von außen erreichbar sind.
$config['uploads_url'] = $config['root_url'].'/uploads';
// Maximale Größe für Uploads
// Geben Sie an, wie groß Uploads maximal sein dürfen (in Bytes).
// Beachten Sie, dass dieser Wert auch durch die Einstellung in der php.ini begrenzt ist.
$config['max_upload_size'] = 32000000;
// Rechte für Uploads
// Geben Sie hier an, mit welchen Rechten Uploads gespeichert werden sollen.
$config['default_upload_permission'] = '664';
// PHP in Smarty erlauben
// Wenn Sie PHP innerhalb Ihrer Smarty-Anweisungen über {php} ermöglichen möchten
// können Sie diesen Parameter aktivieren.
// Aktivieren Sie diesen Parameter nur, wenn Sie Ihren Benutzern von CMSms vertrauen.
$config['use_smarty_php_tags'] = false;
// Automatischer Alias
// Wenn dieser Parameter aktiviert ist, werden Seiten Aliase automatisch aus dem Seitentitel erzeugt.
$config['auto_alias_content'] = true;
// Sprechende URLs über mod_rewrite
// Aktivieren Sie diesen Parameter, um suchmaschinenfreundliche (sprechende) URLs zu benutzen.
// Beachten Sie, dass Sie dann ebenfalls 'use_hierarchy' aktivieren müssen, damit Module weiter funktionieren.
$config['assume_mod_rewrite'] = false;
// Sprechende URLs über internen Mechanismus
// Falls Sie suchmaschinenfreundliche (sprechende) URLs verwenden wollen, aber mod_rewrite
// nicht benutzen können oder wollen, können Sie den internen Mechanismus von CMSms
// benutzen. Aktivieren Sie dazu diesen Parameter.
// Dies wird wahrscheinlich nicht mit IIS und dem {metatag} Tag funktionieren.
$config['internal_pretty_urls'] = false;
// URL Hierarchie benutzen
// Wenn Sie suchmaschinenfreundliche (sprechende) URLs aktiviert haben, sollten Sie
// diesen Parameter ebenfalls aktivieren, um die Hierarchie in der URL anzuzeigen.
// Beispiel Hierarchie-URL: http://www.meine-seite.de/elternseite/elternseite/unterseite
$config['use_hierarchy'] = false;
// Datei-Erweiterung für mod_rewrite
// Mit diesem Parameter können Sie eine Dateiendung für sprechende URLs aktivieren,
// z.B. '.html'. Dann wird aus http://meine-seite.de/unterseite
// http://www.meine-seite.de/unterseite.html
$config['page_extension'] = '';
// URL Query Variable
// Wenn Sie keine sprechenden URLs verwenden, können Sie hier den Variablen-Namen
// für die URL Query festlegen.
// (z.B. ttp://www.meine-seite.de/index.php?page=irgendeineseite
// Standard ist page
$config['query_var'] = 'page';
// Programm für Bildbearbeitung
// Legen Sie hier fest, welches Programm zur Thumbnail-Erzeugung und Bildbearbeitung
// verwendet werden soll.
// Siehe http://wiki.cmsmadesimple.org/index.php/User_Handbook/Admin_Panel/Content/Image_Manager für weitere Informationen.
$config['image_manipulation_prog'] = 'GD';
$config['image_transform_lib_path'] = '/usr/bin/ImageMagick/';
// Verzeichnis für Bilder-Uploads
// Hier können Sie angeben, wo Bilder-Upload-Dateien gespeichert werden sollen.
$config['image_uploads_path'] = $config['root_path']."/uploads/images";
// URL für Bilder-Uploads
// Geben Sie hier die URL an, unter welcher die Bilder-Uploads von außen erreichbar sind.
$config['image_uploads_url'] = $config['root_url'].'/uploads/images';
// Spracheinstellung
// Hier können Sie die Spacheinstellung vornehmen.
// Lassen Sie diese Variable leer, wenn Sie die Einstellung des Webservers übernehmen möchten.
// Standard ist ''.
// Für Deutsch eignet sich meist 'de_DE.UTF8'
$config['locale'] = 'de_DE.UTF8';
// Zeichenkodierung
// Hier können Sie die Zeichenkodierung angeben.
// Lassen Sie diese Variable leer, wird utf-8 verwendet.
// Wenn Sie hier Änderungen vornehmen, sollten Sie stets beide Parameter ändern.
$config['default_encoding'] = 'utf-8';
$config['admin_encoding'] = 'utf-8';
// Alte Stylesheet-Logik verwenden
// Aktivieren Sie diesen Parameter, wenn Sie die alte Stylesheet-Logik verwenden möchten.
// Diese funktioniert mit älteren Versionen von CMSms, ist allerdings wesentlich langsamer.
// Aktivieren Sie diesen Parameter nur, wenn Sie ihn wirklich benötigen.
$config['old_stylesheet'] = false;
// URL der Backend-Hilfe im Benutzer-Handbuch
$config['wiki_url'] = 'http://wiki.cmsmadesimple.org/index.php/User_Handbook/Admin_Panel';
// Kompatibilitäts-Modus
// Wenn Sie Module verwenden, die für CMSms Versionen vor 1.0 erstellt wurden,
// können Sie diesen Parameter aktivieren, falls diese Module Probleme bereiten.
// Dies wird allerdings den Speicherverbrauch erhöhen.
$config['backwards_compatible'] = false;
// Alte Parameter
// Diese Parameter werden nicht r verwendet.
// Sie sind nur noch aus Kompatibilitäts-Gründen vorhanden.
$config['disable_htmlarea_translation'] = false;
$config['use_Indite'] = true;
// EOF