sovok
August 29, 2008, 10:54am
1
Hello, I am trying to rewrite for a webpage, some stuff from apache to
nginx, somehow I am not doing it right coz its not working… Can some
one help me to rewrite this:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
RewriteRule ^(./)?.svn(/|$) - [F,L]
RewriteRule ^(. /)?api(/|$) - [F,L]
RewriteRule ^(./)?libs(/|$) - [F,L]
RewriteRule ^(. /)?plugins(/|$) - [F,L]
RewriteRule ^(./)?storage(/|$) - [F,L]
RewriteRule ^(. /)?templates(/|$) - [F,L]
to nginx?!
Thank you!
sovok
August 29, 2008, 11:08am
2
On Fri, Aug 29, 2008 at 10:54:38AM +0200, Robert G. wrote:
RewriteRule ^(./)?libs(/|$) - [F,L]
RewriteRule ^(. /)?plugins(/|$) - [F,L]
RewriteRule ^(./)?storage(/|$) - [F,L]
RewriteRule ^(. /)?templates(/|$) - [F,L]
to nginx?!
server {
root ...
location / {
error_page 404 = /index.php;
}
location ~* \.php$ {
...
}
location ~* ^(.*/)?(\.svn|api|libs|plugins|storage|templates)(/|$) {
return 403;
}
sovok
August 29, 2008, 11:13am
3
But what about this?
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
Igor S. wrote:
On Fri, Aug 29, 2008 at 10:54:38AM +0200, Robert G. wrote:
RewriteRule ^(./)?libs(/|$) - [F,L]
RewriteRule ^(. /)?plugins(/|$) - [F,L]
RewriteRule ^(./)?storage(/|$) - [F,L]
RewriteRule ^(. /)?templates(/|$) - [F,L]
to nginx?!
server {
root ...
location / {
error_page 404 = /index.php;
}
location ~* \.php$ {
...
}
location ~* ^(.*/)?(\.svn|api|libs|plugins|storage|templates)(/|$) {
return 403;
}
sovok
August 29, 2008, 11:28am
4
Igor S. wrote:
On Fri, Aug 29, 2008 at 11:13:20AM +0200, Robert G. wrote:
But what about this?
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
location / {
error_page 404 = /index.php;
}
It doesnt work, I was thinking to do it like this:
if (!-f $request_filename) {
rewrite . /index.php last;
break;
}
But this doesnt work eider, the website doesnt seems to work and if I
dont use any rewrite rules I get 404 error and if I use the rules, its
just messed up.
sovok
August 29, 2008, 11:24am
5
On Fri, Aug 29, 2008 at 11:13:20AM +0200, Robert G. wrote:
But what about this?
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
location / {
error_page 404 = /index.php;
}
sovok
August 29, 2008, 11:39am
6
On Fri, Aug 29, 2008 at 11:28:03AM +0200, Robert G. wrote:
error_page 404 = /index.php;
}
It doesnt work, I was thinking to do it like this:
if (!-f $request_filename) {
rewrite . /index.php last;
break;
}
No, do not use this.
But this doesnt work eider, the website doesnt seems to work and if I
dont use any rewrite rules I get 404 error and if I use the rules, its
just messed up.
Could you show your configuration ?
sovok
August 29, 2008, 11:41am
7
The subdomain config:
server {
listen 80;
server_name helpdesk.visualserver.org *.helpdesk.visualserver.org;
access_log /var/log/nginx/helpdesk-access_log;
error_log /var/log/nginx/helpdesk-error_log;
location / {
root /srv/www/helpdesk;
index index.php index.html index.htm;
error_page 404 = /index.php;
}
location ~* ^(.*/)?(.svn|api|libs|plugins|storage|templates)(/|$) {
return 403;
}
location ~* \.php$ {
fastcgi_pass 127.0.0.1:50000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME
/srv/www/helpdesk$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
# PHP only, required if PHP was built with
–enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;
}
#error_page 404 /404.html;
redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/nginx-default;
}
}
nginx config:
user www-data;
worker_processes 2;
pid /var/run/nginx.pid;
error_log /var/log/nginx/error_log info;
events {
worker_connections 1024;
use epoll;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
server_tokens off;
server_names_hash_bucket_size 128;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 4;
gzip on;
gzip_min_length 1100;
gzip_comp_level 2;
gzip_types text/plain text/html text/css;
include /etc/nginx/sites-enabled/*;
include /etc/nginx/sites-users/*;
include /etc/nginx/sites-virtual/*;
}
So thats about it…
sovok
August 29, 2008, 12:46pm
8
Igor S. wrote:
On Fri, Aug 29, 2008 at 11:41:51AM +0200, Robert G. wrote:
The subdomain config:
Does simple http://helpdesk.visualserver.org/index.php work ?
Probably you need to move
root /srv/www/helpdesk;
to server level to inherit it in “location ~* .php$” and to get
right $document_root variable in fastcgi_param.
PS. looking at these indentions I’m starting to understand python more
and more.
Yes http://helpdesk.visualserver.org/index.php works, but when I try to
login everything starts to be screwed up.
sovok
August 29, 2008, 12:12pm
9
On Fri, Aug 29, 2008 at 11:41:51AM +0200, Robert G. wrote:
The subdomain config:
Does simple http://helpdesk.visualserver.org/index.php work ?
Probably you need to move
root /srv/www/helpdesk;
to server level to inherit it in “location ~* .php$” and to get
right $document_root variable in fastcgi_param.
PS. looking at these indentions I’m starting to understand python more
and more.
sovok
August 29, 2008, 1:10pm
10
Igor S. wrote:
On Fri, Aug 29, 2008 at 12:46:12PM +0200, Robert G. wrote:
right $document_root variable in fastcgi_param.
PS. looking at these indentions I’m starting to understand python more
and more.
Yes http://helpdesk.visualserver.org/index.php works, but when I try to
login everything starts to be screwed up.
The login page POSTs to /index.php/, then browser gets various URLs
like:
/index.php/styles/default/cerberus.css?v=726
Is it correct ?
Yeah something like that, or
http://helpdesk.visualserver.org/index.php/login
sovok
August 29, 2008, 1:08pm
11
On Fri, Aug 29, 2008 at 12:46:12PM +0200, Robert G. wrote:
right $document_root variable in fastcgi_param.
PS. looking at these indentions I’m starting to understand python more
and more.
Yes http://helpdesk.visualserver.org/index.php works, but when I try to
login everything starts to be screwed up.
The login page POSTs to /index.php/, then browser gets various URLs
like:
/index.php/styles/default/cerberus.css?v=726
Is it correct ?
sovok
August 29, 2008, 1:45pm
12
Done that, doesnt work, I really cant get the idea why it doesnt work…
This is shitty
P.S. this is cerb4 (cerberus helpdesk)
sovok
August 29, 2008, 2:07pm
14
Actually in /var/log/nginx/helpdesk-error_log I dont have any errors and
in access_log seems everything ok.
sovok
August 29, 2008, 1:37pm
15
On Fri, Aug 29, 2008 at 01:10:47PM +0200, Robert G. wrote:
The login page POSTs to /index.php/, then browser gets various URLs
like:
/index.php/styles/default/cerberus.css?v=726
Is it correct ?
Yeah something like that, or
http://helpdesk.visualserver.org/index.php/login
Then you need to change
sovok
August 29, 2008, 2:14pm
16
On Fri, Aug 29, 2008 at 01:45:59PM +0200, Robert G. wrote:
Done that, doesnt work, I really cant get the idea why it doesnt work…
This is shitty
P.S. this is cerb4 (cerberus helpdesk)
Then you probably need to add PATH_INFO:
location ~* \.php(/|$) {
set $path_info "";
if ($uri ~ \.php(/.+)$) {
set $path_info $1;
}
...
fastcgi_param PATH_INFO $path_info;
...
}
sovok
August 29, 2008, 2:16pm
17
set $path_info “”; this blank or where the scripts are?
sovok
August 29, 2008, 2:18pm
18
I suppose something like this:
location ~* \.php(/|$) {
fastcgi_pass 127.0.0.1:50000;
fastcgi_index index.php;
set $path_info "";
if ($uri ~ \.php(/.+)$) {
set $path_info $1;
}
fastcgi_param SCRIPT_FILENAME
/srv/www/helpdesk$fastcgi_script_name;
fastcgi_param PATH_INFO $path_info;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
}
sovok
August 29, 2008, 4:34pm
20
On Fri, Aug 29, 2008 at 04:18:52PM +0200, Robert G. wrote:
Good, it doesnt work
Could you create debug log ?