rewrite rules cms phpwcms not working

dansch8888 nginx-forum at nginx.us
Sun Feb 15 14:02:05 UTC 2015


I try to convert apache rewrite rules for CMS phpwcms (www.phpwcms.de), but
with the online converter tools and some adjustments recommended at the
nginx wiki I still struggle with that.

That's my configuration
**Server**
Debian Whezzy
nginx v 1.6.2
php5-fpm 5.5.20-1~dotdeb.1 (fpm-fcgi)

**Rewrite Rule Apache**
RewriteEngine on
RewriteBase /
RewriteRule ^
(track|include|img|template|picture|filearchive|content|robots\.txt|favicon\.ico)($|/)
- [L]
RewriteRule ^ index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^
([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)\.html$
/index.php?id=$1,$2,$3,$4,$5,$6&%{QUERY_STRING}
RewriteRule ^ (.+)\.html$ /index.php?$1&%{QUERY_STRING}

Rewrite should do for example this:
http://hometest.home.local/home_de.html ->
http://hometest.home.local/index.php?home_de

CMS without rewrite works fine.

Tests with the converted rewrite rules where not working and more confused
then rewriting with the try_files option.
So I switched to test with try_files. Examples for wordpress or drupal where
not working too.

Now I'm at this stage. I believe the main problem is the "QUERY_STRING", but
I have no idea how that get rendered.

**Nginx Site Config /etc/nginx/sites-available/default :**
listen 80 default_server;
server_name hometest.home.local;
root /data/www/vhosts/default/public_html;
location / {
   try_files $uri /index.php;
}
location ~ \.php$ {
	fastcgi_pass unix:/var/run/php5-fpm.sock;
	fastcgi_index index.php;
	include fastcgi_params;
	fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
rewrite_log on;
access_log /data/www/vhosts/default/logs/access.log;
error_log /data/www/vhosts/default/logs/error.log debug;
}

That's what the logfile shows.

**Nginx Error Log:**
[debug] 6102#0: *1 http run request: "/index.php?"
[debug] 6102#0: *1 http upstream check client, write event:1, "/index.php"
[debug] 6102#0: *1 http upstream recv(): -1 (11: Resource temporarily
unavailable)
...
[error] 6102#0: *1 FastCGI sent in stderr: "PHP message: PHP Notice:  Use of
undefined constant Y - assumed 'Y' in
/data/www/vhosts/default/public_html/include/inc_front/front.func.inc.php(2287)
: eval()'d code on line 1


** front.func.inc.php(2287)**
function include_int_phpcode($string) {
	// return the PHP code
	$s = html_despecialchars($string[1]);
	$s = str_replace('<br>', "\n", $s);
	$s = str_replace('<br />', "\n", $s);
	ob_start();
	eval($s.";");
	return ob_get_clean();
}

I hope someone can help me with this. The phpcwms forum couldn't give me an
answer so fare.

Thank you
Daniel

Posted at Nginx Forum: http://forum.nginx.org/read.php?2,256693,256693#msg-256693



More information about the nginx mailing list