ich betreue die Homepage eines Kinder- und Jugendzirkus.
Zum rumprobieren wollte ich nun eine Kopie der Seite auf meinem vServer laufen lassen, damit ich an der echten Seite nichts kaputt mache.
Die Seite benutzt die RewriteEngine, um "Clean URLs" benutzen zu können:
Aus
wirdhttps://xxx.de/template.php/Start/Willkommen
https://xxx.de/Start/Willkommen
Die Verarbeitung der Argumente ("Start" und "Willkommen") passiert in der template.php
Nun habe ich das Problem, dass eben genau dieses URL-Umschreiben auf meinem vServer nicht funktioniert.
Die Seite ist erreichbar, wenn ich sie über
aufrufe, aber nicht überhttps://playground.xxx.de/template.php/Start/Willkommen
- da bekomme ich die Fehlermeldunghttps://playground.xxx.de/Start/Willkommen
No input file specified.
Die vHost-Konfiguration sieht folgendermaßen aus:
- Code: Select all
<VirtualHost *:80>
ServerName playground.xxx.de
ServerAdmin webmaster@xxx.de
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>
<VirtualHost *:443>
ServerName playground.xxx.de
ServerAdmin webmaster@xxx.de
Header always set Strict-Transport-Security "max-age=31536000"
DocumentRoot /var/www/xxx.de/htdocs/playground
SuexecUserGroup zirkus zirkus
<Directory /var/www/xxx.de/htdocs/playground/>
FCGIWrapper /var/www/xxx.de/conf_xxx.de .php
<FilesMatch \.php$>
SetHandler fcgid-script
</FilesMatch>
AllowOverride All
Options +ExecCGI
</Directory>
LogLevel warn
ErrorLog /var/www/xxx.de/logs/error_playground.log
CustomLog /var/www/xxx.de/logs/access_playground.log combined
SSLEngine On
SSLProtocol All -SSLv2 -SSLv3
SSLCertificateKeyFile /home/zirkus/letsencrypt/live/cloud.xxx.de/privkey.pem
SSLCertificateFile /home/zirkus/letsencrypt/live/cloud.xxx.de/fullchain.pem
</VirtualHost>
In der .htaccess unter /var/www/xxx.de/htdocs/playground/ steht folgendes:
- Code: Select all
######################################################################
ErrorDocument 404 https://playground.xxx.de/404.php
ErrorDocument 403 https://playground.xxx.de/404.php
######################################################################
#Mit options kann man vrschiedene Funktionen vom Server Steuern
# -/+ Indexes: gibt eine Liste zurück, wenn keine index.php/html/... gefunden wurde.
# - off
# + on
Options -Indexes
######################################################################
# AddHandler allows you to map certain file extensions to "handlers",
#AddHandler af_php5 .php
######################################################################
# Clean URL's
# !-f: check ob die Datei nicht vielleicht existiert
# !-d: prüfen ob angegebene url vllt echtes verzeichnis ist
# Rewrite Rule: soll alles ^(.*)$ was oben in Adressleiste nach der Domain reinkommt fiktiv hinter das xxx.php schreiben
# z.B. /ornder1/ordner2/index.php -> index.php/ordner1/ordner2
# quelle:http://webstylez.net/Virtuelle-Adressen-umgeschriebene-Links-oder-rewritten-URLs-mit-PHP/
# PHP: $UnterordnerOhnePagename = str_replace($_SERVER['SCRIPT_NAME'], '', $_SERVER['PHP_SELF']);
# $levels = explode('/', $UnterordnerOhnePagename);
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule ^(.*)/$ template.php/$1 [L]
RewriteRule ^(.*)$ template.php/$1 [PT,L,QSA]
Wenn ich via curl den Header des Seitenaufrufs
https://playground.xxx.de/Start/Willkommen
anschaue, bekomme ich als HTTP-Code "404 - Not Found".
Vermutlich ist es nur irgendeine Kleinigkeit, die ich einfach übersehen habe..
Liebe Grüße
zweihorn