Zum Inhalt springen

RealUrl mod_rewrite Überlastung

Erstellt am 26. Juli 2006 · 10 Antworten · letzte Antwort am 16. August 2006

Tags: RealURL, Frage

Gottfried19 ·

Hallo Forengemeinschaft,

Ich verwende:
Typo3 4.0
RealUrl 1.1.0

Folgendes Problem:
Mein Webspacehoster hat mir gemeldet das meine htaccess fehlerhafte mod_rewrite-Regeln enthält die zu einer Überlast des Servers führen, sodass er gleich meine htaccess ausserkraft setzen musste. Da ich eigentlich meines Wissens nach nur die Anleitungen befolgt habe und damit auch RealUrl super funktioniert hat, versteh ich nicht ganz wo da der Hund sein soll. Ich wäre für jede Hilfe dankbar!

Meine htaccess Datei:

RewriteEngine On
RewriteRule ^typo3$ - [L]
RewriteRule ^typo3/.*$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* index.php

Meine localconf.php Datei (realUrl Teil):

$TYPO3_CONF_VARS['FE']['simulateStaticDocuments'] = '0';	//  Modified or inserted by TYPO3 Install Tool.
$TYPO3_CONF_VARS["FE"]["logfile_dir"] = 'awstats_logfiles/'; 
// Updated by TYPO3 Install Tool 03-06-2006 02:27:33
$TYPO3_CONF_VARS['FE']['addRootLineFields'].= ',tx_realurl_pathsegment';
$TYPO3_CONF_VARS['SYS']['doNotCheckReferer']=1; 
$TYPO3_CONF_VARS['EXTCONF']['realurl'] = array(
	'_DEFAULT' => array(
		'init' => array(
			'enableCHashCache' => 1,
			'appendMissingSlash' => 'ifNotFile',
			'enableUrlDecodeCache' => 1,
			'enableUrlEncodeCache' => 1,
		),
		'redirects' => array(),
		'preVars' => array(
			array(
				'GETvar' => 'no_cache',
				'valueMap' => array(
					'nl' => 1,
				),
				'noMatch' => 'bypass',
			),
			array(
				'GETvar' => 'L',
				'valueMap' => array(
					'dk' => '2',
					'de' => '1',
				),
				'noMatch' => 'bypass',
			),
		),
		'pagePath' => array(
			'type' => 'user',
			'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
			'spaceCharacter' => '-',
			'languageGetVar' => 'L',
			'expireDays' => 7,
###### include your rootpage id here
			'rootpage_id' => 1,
		),
		'fixedPostVars' => array(),
		'postVarSets' => array(
			'_DEFAULT' => array(
			
			// addedvalue
		  'single' => array(
			array(
                         'GETvar' => 'tx_mediacookieimmomanager_pi1[uid]',
			     ),
	       	                  ),
	
				// news archive parameters
				'archive' => array(
					array(
						'GETvar' => 'tx_ttnews[year]' ,
						),
					array(
						'GETvar' => 'tx_ttnews[month]' ,
						'valueMap' => array(
							'january' => '01',
							'february' => '02',
							'march' => '03',
							'april' => '04',
							'may' => '05',
							'june' => '06',
							'july' => '07',
							'august' => '08',
							'september' => '09',
							'october' => '10',
							'november' => '11',
							'december' => '12',
							)
						),
					),
				// news pagebrowser
				'browse' => array(
					array(
						'GETvar' => 'tx_ttnews[pointer]',
						),
					),
				// news categories
				'select_category' => array (
					array(
						'GETvar' => 'tx_ttnews[cat]',
						),
					),
				// news articles and searchwords
				'article' => array(
					array(
						'GETvar' => 'tx_ttnews[tt_news]',
						'lookUpTable' => array(
							'table' => 'tt_news',
							'id_field' => 'uid',
							'alias_field' => 'title',
							'addWhereClause' => ' AND NOT deleted',
							'useUniqueCache' => 1,
							'useUniqueCache_conf' => array(
								'strtolower' => 1,
								'spaceCharacter' => '-',
								),
							),
						),
					array(
						'GETvar' => 'tx_ttnews[swords]',
						),
					),
				),
			),
		// configure filenames for different pagetypes
		'fileName' => array(
		       'defaultToHTMLsuffixOnPrev' => true,
			'index' => array(
				'rss.xml' => array(
					'keyValues' => array(
						'type' => 100,
					),
				),
				'rss091.xml' => array(
					'keyValues' => array(
						'type' => 101,
					),
				),
				'rdf.xml' => array(
					'keyValues' => array(
						'type' => 102,
					),
				),
				'atom.xml' => array(
					'keyValues' => array(
						'type' => 103,
					),
				),
				#'backend.php' => array(
              # 'keyValues' => array (
              #     'type' => 100,
              # )
          # ),
         #  'print' => array(
         #      'keyValues' => array(
          #         'type' => 98,
         #      )
         #  ),
			),
		),
	),
);

Mein Typo3 Setup (RealUrl Teil):

# RealUrl Statische URLs

config.simulateStaticDocuments = 0
config.baseURL = http://meinesubdomain.domain.de/
config.tx_realurl_enable = 1
config.prefixLocalAnchors = all

Vielen Dank! Liebe Grüße

Gottfried19 ·
chipek schrieb

hi,

was steht den im error_log?

Hallo chipek,

anscheinend kann ich immer nur das Logfile vom aktuellen Tag einsehen. Daher sehe ich nun nichts mehr über gestern. Hab RealURL kurz noch mal grad aktiviert und herum gesurft aber es kamen keine ERRORs im Logfile.

chipek ·

Hallo

aha - ist aber etwas schwierig ne Diagnose zu stellen, wenn man keine Symptome hat. Hat den der Provieder etwas geschrieben ausser das die

htaccess fehlerhafte mod_rewrite-Regeln enthält die zu einer Überlast des Servers führen

.
Bei meinen letzten Provider kam nach meiner .htaccess immer fogende Meldung:

[error] [client ...] mod_rewrite: maximum number of internal redirects reached. Assuming configuration error. Use 'RewriteOptions MaxRedirects' to increase the limit if neccessary.

Beheben konnte ich das indem ich über der jeweiligen Problem verursachenden RewriteRule folgendes geändert habe.
Aus

RewriteEngine On
RewriteRule ^ /index.php

habe ich das gemacht

RewriteEngine On
RewriteRule !index\.php - [C]
RewriteRule ^ /index.php

bedeutet:
RewriteEngine aktivieren;
wenn nicht die index.php angefordert wurde - mache nichts und verkette mit der nachfolgenden Regel

Kann helfen muss aber nicht ;-) - schön wäre natürlcih ne logfile.

Ich kann dir auch noch ne Seite empfehlen, mit der ich schon einige Rewrite-Probleme lösen konnte.http://www.modrewrite.de/

greetz
chipek

Gottfried19 ·

Super, danke für deine Mühe. Ich hab nun meinem Hoster eine Anfrage geschickt was er daran als fehlerhaft befindet und was das error_log damals gemeldet hat.

liebe Grüße

Gottfried19 ·

Email des Webhosters:

Die mod_rewrite-Regeln führen (wahrscheinlich nur bei bestimmten Aufrufen) zu einer Rekursion, es kann also die Seite, die Laut Regel aufgerufen werden soll nicht aufgerufen werden und deshalb durchläuft der Aufruf wieder die Regeln usw.

Wie kann man das Unterbinden?

chipek ·

Hi

na das ist ja mal ne vage Aussage ;-)
und bei welcher der Regeln das auftritt, sollen
wir nun testen? - Dann mach das doch.
Ich würde es halt mal so probieren -
aber sicher bin ich mir da auch nicht

RewriteEngine On
RewriteRule !^typo3$ - [C]
RewriteRule ^typo3$ - [L]
RewriteRule !^typo3/.*$ -  [C]
RewriteRule ^typo3/.*$ - [L]
RewriteRule !.* index.php -  [C]
RewriteRule .* index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
Gottfried19 ·

hallo chipek,

danke für deine antwort. war auf kurzurlaub daher erst jetzt meine antwort.
wenn ich das richtig verstanden habe soll ich das nun in mein htaccess geben zum austesten des fehlers und beobachten des error_logs?

chipek ·

Hi,

wie schon gesagt ich bin mir nicht sicher - daher vielleicht evtl.
doch noch unter modrewirte.de schauen.
Aber wenn ich vom Provider so eine nichtssagende Mail bekommen
hätte - würde ich es auf gut Glück mal versuchen.
Möglich ist auch das nur die access_log für dich erstellt wird und
gar keine Einträge in die error_log in deinem Verzeichnis geschrieben werden.

Zu dem von mir geposteten Beispiel:
Hab praktisch nur die "Wenn ... nicht aufgerufen ... mach nix und geh zu nächsten Regel" Syntax vor jede deiner Regeln geschriben.

Gruß
chipek

Gottfried19 ·

2teres funktionierte nicht. da kam dann garnichts, weder FE noch BE. hab nun ersteres eingebaut und bisschen das errorlog file beobachtet. soweit alles gut. mal gespannt :-)

danke & liebe grüße