Problem mit mod_rewrite

triptychon

Registered User
Hallo ServerSupportforum,

ich habe ein Problem bei meinem Server nach der Neuinstallation "rewrite" zu aktivieren. Ich beschäftige mich damit nun schon über eine Woche und habe zu ziemlich jedes bei Suchmaschinen gelistete "Tutorial" probiert...glaube ich - leider ohne Erfolgserlebnis. (Auch hier im Forum)

Hier meine Konfiguration:
nach dem Template von s4y frisch aufgesetzt...
RootDS
OpenSuse 10.3 32-Bit
Plesk 8.4.0
Apache 2.2.4
php.info zeigt das das Modul nicht zur Verfügung steht!

Ich habe bereits httpd.conf, apache2.conf und loadmodule.conf editiert...jeweils ohne ergebnis. Auf dem Server ist die mod_rewrite.so jedoch vorhanden.

Vielleicht habe ich in der Konsole noch nicht die richtigen Anweisungen gegeben? Hat Plesk was gegen meine Einträge?

Ich wäre sehr dankbar für Hilfe. Meine Seiten zeigen nun schon seit einer Woche Error 500!

Grüße
 
Hallo!
Wie sieht die Datei /etc/apache2/sysconfig.d/loadmodules.conf aus? Wurde SuSEconfig nach der Änderung aufgerufen? Was steht bei einem 500er im Apache Error Log?

mfG
Thorsten
 
Hallo Thorsten, danke für die Antwort.

loadmodules.conf enthält keinen Eintrag zum rewrite modul.

Habe beim letzten versuch rewrite in httpd.conf eingetragen, SuSEconfig gemacht und anschließend einen Apache restart...

Wie lautet der Apache restart befehl denn genau bei meiner Configuration?
Denn dabei spuckt die Konsole ne menge an Meldungen aus...

Interessant außerdem finde ich, das unter APACHE_MODULES in httpd.conf die Modul Einträge eine Lücke haben...vor den letzten 4 Einträgen...oder hat das nix zu bedeuten?
 
Der Befehl für den Restart dürfte eigentlich
Code:
/etc/init.d/apache2 restart
sein. Poste uns doch mal die Fehlermeldungen, die der apache beim starten ausgibt.

Ausserdem hat Thorsten nach den Fehlermeldungen im error.log gefragt, wenn du eine Seite aufrufst. Auch die wären interessant, um dir bei deinem Problem zu helfen.
 
Nach Eingabe von genau dem restart Befehl, erscheint:

Code:
: command not foundhe2: line 3;
: command not foundhe2: line 15;
: command not foundhe2: line 31;
: command not foundhe2: line 85;
: command not foundhe2: line 86;
: command not foundhe2: line 115;
: command not foundhe2: line 125;
: command not foundhe2: line 141;
: command not foundhe2: line 157;
: command not foundhe2: line 174;
: command not foundhe2: line 184;
: command not foundhe2: line 193;
: command not foundhe2: line 201;
: command not foundhe2: line 231;
: command not foundhe2: line 243;
: command not foundhe2: line 253;
: command not foundhe2: line 263;
: command not foundhe2: line 271;
Warning: No MPM found. Some modules are dependant on the type of MPM.
Module "cgi" is not installed, ignoring.
Check the APACHE_MODULES setting in /etc/sysconfig/apache2.
Module "ssl" is not installed, ignoring.
Check the APACHE_MODULES setting in /etc/sysconfig/apache2.
" is not installed, ignoring.
Check the APACHE_MODULES setting in /etc/sysconfig/apache2.
Warning: No MPM found. Some modules are dependant on the type of MPM.
 from APACHE_CONF_INCLUDE_FILES not found. Ignored.
Warning: No MPM found. Some modules are dependant on the type of MPM.
 from APACHE_CONF_INCLUDE_FILES not found. Ignored.
httpd2-prefork: Could not open configuration file /srv/www/\r: No such file or directory

Im error.log finde ich:

...eigentlich nur Einträge die darauf hinweisen, dass bestimmte Pages bei meinen Domains nicht aufrufbar sind...
 
Hallo!
Bitte poste doch mal deine httpd.conf und loadmodules.conf in Codes Tags. Mit welchem Editor bearbeitest du deine Konfigurationsdateien?

mfG
Thorsten
 
Ich lade die Dateien in der Regel herunter, und öffne Sie in Windows mit "WordPad-MFC-Anwendung" und speichere die Datei dann anschließend in "Anführungszeichen", was so weit ich mal gelesen habe, keine ungewollten Änderungen in der Datei erzeugt!?

Hier die loadmodule.conf aus /etc/apache2/sysconfig.d/

Wobei ich gerade feststelle, das die rewrite_mod heute drin ist...und die Datei heute das letzte mal erzeugt wurde. Wahrscheinlich als ich den restart gemacht habe! Trotzdem zeigt mir phpinfo das als nicht geladen an!

Code:
#
# Files in this directory are created at apache start time by /usr/sbin/rcapache2 
# Do not edit them!
#

# as listed in APACHE_MODULES (/etc/sysconfig/apache2)

LoadModule actions_module                 /usr/lib/apache2/mod_actions.so
LoadModule alias_module                   /usr/lib/apache2/mod_alias.so
LoadModule auth_basic_module              /usr/lib/apache2/mod_auth_basic.so
LoadModule authn_file_module              /usr/lib/apache2/mod_authn_file.so
LoadModule authz_host_module              /usr/lib/apache2/mod_authz_host.so
LoadModule authz_groupfile_module         /usr/lib/apache2/mod_authz_groupfile.so
LoadModule authz_default_module           /usr/lib/apache2/mod_authz_default.so
LoadModule authz_user_module              /usr/lib/apache2/mod_authz_user.so
LoadModule authn_dbm_module               /usr/lib/apache2/mod_authn_dbm.so
LoadModule autoindex_module               /usr/lib/apache2/mod_autoindex.so
LoadModule dir_module                     /usr/lib/apache2/mod_dir.so
LoadModule env_module                     /usr/lib/apache2/mod_env.so
LoadModule expires_module                 /usr/lib/apache2/mod_expires.so
LoadModule include_module                 /usr/lib/apache2/mod_include.so
LoadModule log_config_module              /usr/lib/apache2/mod_log_config.so
LoadModule mime_module                    /usr/lib/apache2/mod_mime.so
LoadModule negotiation_module             /usr/lib/apache2/mod_negotiation.so
LoadModule rewrite_module                 /usr/lib/apache2/mod_rewrite.so
LoadModule setenvif_module                /usr/lib/apache2/mod_setenvif.so
LoadModule userdir_module                 /usr/lib/apache2/mod_userdir.so
LoadModule php5_module                    /usr/lib/apache2/mod_php5.so
LoadModule perl_module                    /usr/lib/apache2/mod_perl.so
#

und hier die httpd.conf aus /etc/apache2/

Code:
#
# /etc/apache2/httpd.conf 
#
# This is the main Apache server configuration file.  It contains the
# configuration directives that give the server its instructions.
# See <URL:http://httpd.apache.org/docs-2.2/> for detailed information about
# the directives.

# Based upon the default apache configuration file that ships with apache,
# which is based upon the NCSA server configuration files originally by Rob
# McCool. This file was knocked together by Peter Poeml <poeml+apache@suse.de>.

# If possible, avoid changes to this file. It does mainly contain Include
# statements and global settings that can/should be overridden in the
# configuration of your virtual hosts.

# Quickstart guide:
# http://www.opensuse.org/Apache_Howto_Quickstart


# Overview of include files, chronologically:
#
# httpd.conf
#  | 
#  |-- uid.conf  . . . . . . . . . . . . . .  UserID/GroupID to run under
#  |-- server-tuning.conf  . . . . . . . . .  sizing of the server (how many processes to start, ...)
#  |-- sysconfig.d/loadmodule.conf . . . . .  [*] load these modules
#  |-- listen.conf . . . . . . . . . . . . .  IP adresses / ports to listen on
#  |-- mod_log_config.conf . . . . . . . . .  define logging formats
#  |-- sysconfig.d/global.conf . . . . . . .  [*] server-wide general settings
#  |-- mod_status.conf . . . . . . . . . . .  restrict access to mod_status (server monitoring)
#  |-- mod_info.conf . . . . . . . . . . . .  restrict access to mod_info
#  |-- mod_usertrack.conf  . . . . . . . . .  defaults for cookie-based user tracking
#  |-- mod_autoindex-defaults.conf . . . . .  defaults for displaying of server-generated directory listings
#  |-- mod_mime-defaults.conf  . . . . . . .  defaults for mod_mime configuration
#  |-- errors.conf . . . . . . . . . . . . .  customize error responses
#  |-- ssl-global.conf . . . . . . . . . . .  SSL conf that applies to default server _and all_ virtual hosts
#  |
#  |-- default-server.conf . . . . . . . . .  set up the default server that replies to non-virtual-host requests
#  |    |--mod_userdir.conf  . . . . . . . .  enable UserDir (if mod_userdir is loaded)
#  |    `--conf.d/apache2-manual?conf  . . .  add the docs ('?' = if installed)
#  |
#  |-- sysconfig.d/include.conf  . . . . . .  [*] your include files 
#  |                                             (for each file to be included here, put its name 
#  |                                              into APACHE_INCLUDE_* in /etc/sysconfig/apache2)
#  |
#  `-- vhosts.d/ . . . . . . . . . . . . . .  for each virtual host, place one file here
#       `-- *.conf . . . . . . . . . . . . .     (*.conf is automatically included)
#
#
# Files marked [*] are created from sysconfig upon server restart: instead of
# these files, you edit /etc/sysconfig/apache2



#  Filesystem layout:
#
# /etc/apache2/
#  |-- charset.conv  . . . . . . . . . . . .  for mod_auth_ldap
#  |-- conf.d/
#  |   |-- apache2-manual.conf . . . . . . .  conf that comes with apache2-doc
#  |   |-- mod_php4.conf . . . . . . . . . .  (example) conf that comes with apache2-mod_php4
#  |   `-- ... . . . . . . . . . . . . . . .  other configuration added by packages
#  |-- default-server.conf
#  |-- errors.conf
#  |-- httpd.conf  . . . . . . . . . . . . .  top level configuration file
#  |-- listen.conf
#  |-- magic
#  |-- mime.types -> ../mime.types
#  |-- mod_autoindex-defaults.conf
#  |-- mod_info.conf
#  |-- mod_log_config.conf
#  |-- mod_mime-defaults.conf
#  |-- mod_perl-startup.pl
#  |-- mod_status.conf
#  |-- mod_userdir.conf
#  |-- mod_usertrack.conf
#  |-- server-tuning.conf
#  |-- ssl-global.conf
#  |-- ssl.crl/  . . . . . . . . . . . . . .  PEM-encoded X.509 Certificate Revocation Lists (CRL)
#  |-- ssl.crt/  . . . . . . . . . . . . . .  PEM-encoded X.509 Certificates
#  |-- ssl.csr/  . . . . . . . . . . . . . .  PEM-encoded X.509 Certificate Signing Requests
#  |-- ssl.key/  . . . . . . . . . . . . . .  PEM-encoded RSA Private Keys
#  |-- ssl.prm/  . . . . . . . . . . . . . .  public DSA Parameter Files
#  |-- sysconfig.d/  . . . . . . . . . . . .  files that are created from /etc/sysconfig/apache2
#  |   |-- global.conf
#  |   |-- include.conf
#  |   `-- loadmodule.conf
#  |-- uid.conf
#  `-- vhosts.d/ . . . . . . . . . . . . . .  put your virtual host configuration (*.conf) here
#      |-- vhost-ssl.template
#      `-- vhost.template



### Global Environment ######################################################
#
# The directives in this section affect the overall operation of Apache,
# such as the number of concurrent requests.

# run under this user/group id
Include /etc/apache2/uid.conf

# - how many server processes to start (server pool regulation)
# - usage of KeepAlive
Include /etc/apache2/server-tuning.conf

# ErrorLog: The location of the error log file.
# If you do not specify an ErrorLog directive within a <VirtualHost>
# container, error messages relating to that virtual host will be
# logged here.  If you *do* define an error logfile for a <VirtualHost>
# container, that host's errors will be logged there and not here.
ErrorLog /var/log/apache2/error_log

# generated from APACHE_MODULES in /etc/sysconfig/apache2
Include /etc/apache2/sysconfig.d/loadmodule.conf

# IP addresses / ports to listen on
Include /etc/apache2/listen.conf

# predefined logging formats
Include /etc/apache2/mod_log_config.conf

# generated from global settings in /etc/sysconfig/apache2
Include /etc/apache2/sysconfig.d/global.conf

# optional mod_status, mod_info
Include /etc/apache2/mod_status.conf
Include /etc/apache2/mod_info.conf

# optional cookie-based user tracking
# read the documentation before using it!!
Include /etc/apache2/mod_usertrack.conf

# configuration of server-generated directory listings
Include /etc/apache2/mod_autoindex-defaults.conf

# associate MIME types with filename extensions
TypesConfig /etc/apache2/mime.types
DefaultType text/plain
Include /etc/apache2/mod_mime-defaults.conf

# set up (customizable) error responses
Include /etc/apache2/errors.conf

# global (server-wide) SSL configuration, that is not specific to 
# any virtual host
Include /etc/apache2/ssl-global.conf

# forbid access to the entire filesystem by default
<Directory />
    Options None
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

# use .htaccess files for overriding,
AccessFileName .htaccess
# and never show them
<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
</Files>

# List of resources to look for when the client requests a directory
DirectoryIndex index.html index.html.var index.shtml index.cfm index.php index.htm

### 'Main' server configuration #############################################
#
# The directives in this section set up the values used by the 'main'
# server, which responds to any requests that aren't handled by a
# <VirtualHost> definition.  These values also provide defaults for
# any <VirtualHost> containers you may define later in the file.
#
# All of these directives may appear inside <VirtualHost> containers,
# in which case these default settings will be overridden for the
# virtual host being defined.
#
Include /etc/apache2/default-server.conf


# Another way to include your own files
#
# The file below is generated from /etc/sysconfig/apache2,
# include arbitrary files as named in APACHE_CONF_INCLUDE_FILES and
# APACHE_CONF_INCLUDE_DIRS
Include /etc/apache2/sysconfig.d/include.conf


### Virtual server configuration ############################################
#
# VirtualHost: If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at
# <URL:http://httpd.apache.org/docs-2.2/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.
#
Include /etc/apache2/vhosts.d/*.conf


# Note: instead of adding your own configuration here, consider 
#       adding it in your own file (/etc/apache2/httpd.conf.local)
#       putting its name into APACHE_CONF_INCLUDE_FILES in 
#       /etc/sysconfig/apache2 -- this will make system updates 
#       easier :) 
AddOutputFilter INCLUDES .shtml
AddType text/html .shtml
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
 
Es funktioniert nach wie vor nicht, mod_rewrite wird in PHP nicht angezeigt...

Wenn ich die .htaccess Dateien aus meinen Verzeichnissen nehme, kann ich zwar die 1. Seite laden, alle folgenden Seiten aber nicht, da bei denen schon mod_rewrite gebraucht wird...

Das ist doch echt zum heulen, das eine solche Sache so kompliziert sein muss, kann mir da wirklich keiner weiter helfen?

mod_rewrite ist in loadmodul.conf enthalten...müssen meine vhosts.conf eventuell etwas besonderes enthalten?
 
Last edited by a moderator:
Letzter Versuch...

Kann mir jemand sagen wie ich in die httpd.include unter diesen Zeilen:

Code:
<VirtualHost 00.00.00.000:80>
	ServerName   domain.de:80
	ServerAlias  www.domain.de
	UseCanonicalName Off
	SuexecUserGroup         name psacln
	ServerAdmin  "domain@domain.de"
	DocumentRoot /var/www/vhosts/domain.de/httpdocs
	CustomLog  /var/www/vhosts/domain.de/statistics/logs/access_log plesklog
	ErrorLog  /var/www/vhosts/domain.de/statistics/logs/error_log

direkt diesen Code:

Code:
<IfModule mod_rewrite.c>
	RewriteEngine On
	RewriteCond %{REQUEST_METHOD} ^TRACE
	RewriteRule .* - [F]
</IfModule>

dauerhaft einfügen kann? Die Betonung liegt auf dauerhaft!
 
Einen Schritt weiter...

Hilfe!!!!!

mod_rewrite wurde als Modul geladen. Mir fehlt aber der richtige Eintrag in der vhosts.conf!
 
Last edited by a moderator:
Hallo!
Und wir sollen jetzt raten, wie dieser Eintrag wohl lauten könnte? Was ist das genaue Problem? Wie lauten die Fehlermeldungen? Was sagen die Logfiles?

mfG
Thorsten
 
Ist es bei Linux tatsächlich so, dass alles möglich ist...
...oder ist meine oben erwähnte Serverkonfiguration dermaßen exotisch?
Ich denke nicht!

Bin ich der einzige der die rewrite Funktionalität auf seinem Server nutzen möchte?
Ich denke nicht!

Ich will gar nicht wissen welche Syntax ich benötige, um die zahlreichen Möglichkeiten von mod_rewrite zu nutzen...ich wünsche mir lediglich ein paar Tipps, um meinen Domains das exotische Modul zur Verfügung zu stellen!

Was passiert, nachdem man auf einem jungfräulichen System (siehe oben) das mod_rewrite Modul in der loadmodul.conf findet, aber die phpinfo das Modul nicht aufführt???
 
Hallo!

Auf der einen Seite sagst du 'rewrite wurde als Modul geladen', auf der anderen, dass ein phpinfo() dies nicht aufführt. Also, mal ganz von vorne:
  • Ist in der Datei /etc/sysconfig/apache2 unter der Option APACHE_MODULES ein rewrite zu finden?
  • Wurde SuSEconfig ausgeführt und gab es dabei eventuell Fehlermeldungen?
  • Ist die Apache Webserver Konfiguration neu geladen worden?
mfG
Thorsten
 
Hallo,

sollte nicht unhöflich klingen, ist eher Verzweiflung!

also:
1. Ja, rewrite vorhanden (auch in loadmodules.conf)
2. Ja, SuSEconfig ausgeführt, keine Probleme!

3. Was heisst neu geladen worden? Ein restart des Apache spuckt was aus, wie oben zu sehen!

Ansonsten laufen die Webseiten, außer das phpinfo das Modul nicht zeigt, rewriting nicht geht und ein .htaccess zu Error 500 führt.

PS: An meiner alten httpd.include sehe ich, das damals wohl ein Mitarbeiter von s4y, beim gleichen (!?) Problem, hier einen dauerhaften Eintrag gemacht hat...siehe mein Beitrag oben "Letzter Versuch...".
 
Also, die Fehlermeldungen beim apache restart sehen ja nicht sonderlich gut aus. Da wird wohl was beim Bearbeiten und Übertragen von Windows aus schief gegangen sein.

Zum einen solltest Du mal den Befehl dos2unix über die Dateien, die Du bearbeitet hast, drüber laufen lassen (das entfernt die überflüssigen '^M's bei den Zeilenumbrüchen) und dann mal in einem "sehr breiten" (also breiter als die üblichen 80 Zeichen) Fenster die Dateien mit less anschauen und kontrollieren. Ich habe den Eindruck, dass da auch Zeilenumbrüche sind, wo keine sein sollten.
 
Ich empfehle ebenfalls, die conf-Files nochmal zu überprüfen.
Wieso bearbeitest du die eigentlich auf einem Windows? Geht doch bestens über SSH und jedem beliebigen Editor.

Setze einfach das um, was LinuxAdmin vorschlägt.

Wenn der Restart des Apache ohne Fehler durchläuft, dann musst du mod_rewrite noch einschalten. z.B. so:

Code:
<VirtualHost 00.00.00.000:80>
   DocumentRoot /var/www/vhosts/domain.de/httpdocs
   <Directory /var/www/vhosts/domain.de/httpdocs/>
      Options FollowSymLinks
      AllowOverride All
   </Directory>
</VirtualHost>

Mit dem AllowOverride All schaltest du ein, dass du alles in der .htaccess konfigurieren willst und kannst.

Aber wie gesagt, nichts überstürzen. Erst mal die Fehler beim Apache-Start beheben und dann mit z.B. phpinfo() prüfen, ob das Modul gelistet wird.
 
Sieg!

Ganz großen Dank an LinuxAdmin & fuchzga und allen Anderen!!!

Ihr hattet absolut recht! Ich habe die Original-Dateien mit vi bearbeitet und der Apache restart ging ohne Probleme! Anschließend rewrite auf gleiche Weise der apache2.conf zugefügt und meine vhost.conf überprüft. Die war in Ordnung. Meine .htaccess war ebenfalls fehlerhaft. Jetzt geht alles, und ich habe mal wieder was gelernt! :D
 
Back
Top