У меня проблема с 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-адрес изменяется. Что я делаю неправильно?
заранее спасибо
Задача ещё не решена.
Других решений пока нет …