Я пытаюсь преобразовать очень простое переписывание из предыдущей версии nginx в текущую, как показано ниже:
location / {
if ( !-f $request_filename ) {
rewrite ^/([a-z]*)$ /index.php?action=$1;
rewrite ^/([a-z]*)/(.*)$ /index.php?action=$1&item=$2;
}
}
Вот как далеко я продвинулся. Страница индекса появляется, но любая страница, которая должна быть переписана, как указано выше, вместо этого выдает 404:
server {
listen 80 default;
root /var/www;
index index.php;
server_name _;
location / {
try_files $uri $uri/ /index.php?action=$uri&item=$args;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}
}
Что я здесь не так делаю?
Что именно происходит? Частично проблема в том, что $ uri и $ args неправильно закодированы.
—
Люк
404 выбрасывается,
—
Industrial
File not found.
если я использую либо URI, /page
либо/page/id
Что происходит, когда вы просто делаете
—
Люк
try_files $uri $uri/ /index.php
?
Index.php работает хорошо, но все, что должно быть переписано, заканчивается в 404-х годах
—
Industrial
Попробуй
—
Люк
try_files $uri $uri/ /index.php?$args
. Вы должны быть в состоянии получить URL с $_SERVER['REQUEST_URI']
. $ _GET должен работать нормально.