Nginx URL переписать через диспетчер. Переполнение стека

У меня проблема с Nginx .conf и перенаправлением.

У меня есть следующий dispatcher.php:

<?
$routes = array(
''          => 'index.php',
'story'     => 'story.php',
'submit'    => 'submit.php',
'subedit'   => 'subedit.php',
);

$globals['path'] = $path = preg_split('/\/+/', $_SERVER['PATH_INFO'], 10, PREG_SPLIT_NO_EMPTY);
$script = $routes[$path[0]];

if (empty($script) || !file_exists($script)) {
include_once 'config.php';
do_error("not found", 404, true);
}

$globals['script'] = $script;
if ((include './'.$script) === FALSE) {
include_once 'config.php';
do_error("bad request $script", 400, true);
}

Например, я хочу сделать перенаправление URL: вместо использования story.php я хочу использовать только story. Поэтому я настроил nginx.conf с помощью следующего кода:

index index.php index.html index.htm dispatcher.php;

# Don't serve hidden files.
location ~ /\. {
deny all;
}

location = /favicon.ico {
log_not_found off;
}

location / {
try_files     $uri $uri/ /dispatcher.php?$args;
}

location ~ \.php$ {
include       fastcgi_params;
fastcgi_index dispatcher.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

fastcgi_pass  127.0.0.1:19761;

# Prevent arbitrary code execution by third parties with
# try_files directive.
# http://wiki.nginx.org/Pitfalls#Passing_Uncontrolled_Requests_to_PHP
try_files     $uri =404;
}

Но это не работает, когда я нахожусь на веб-странице и перехожу на URL / story, он остается на index.php, хотя URL-адрес изменяется. Что я делаю неправильно?

заранее спасибо

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]