Кажется, я не могу понять эту перезапись URL-адреса nginx.
Это то что мне нужно
URL-адрес выглядит так:
/управляющий делами/
/ менеджер / панель управления
/ менеджер / сеанс
/ менеджер / просмотр
Они отображаются в следующем порядке:
/manager/index__cms.php
/manager/index__cms.php
/manager/dashboard__cms.php
/manager/session__cms.php
/manager/view__cms.php
ТАКЖЕ:
/ manager / js / module - сопоставить с - /manager/js/module_js.php
/ manager / js / index - сопоставить с - /manager/js/index_js.php
Я бы переименовал файлы, но предыдущий программист все обозначил, используя эти сопоставления URL-адресов. И программа раньше была на apache, теперь nginx.
В настоящее время у меня есть:
location /manager {
index index__cms.php;
rewrite ^(.*)\__cms.php break;
}
РЕШЕНИЕ:
Я сделал следующее. Это некрасиво, но работает.
location /manager {index index__cms.php; try_files $uri $uri/ /manager/index__cms.php$is_args$args;}
location /manager/dashboard {try_files $uri $uri/ /manager/index__cms.php$is_args$args;}
location /manager/session {try_files $uri $uri/ /manager/session__cms.php$is_args$args;}
Было 20 каких-то странных файлов, и это было проще, чем создание динамического метода. Код, которому это необходимо, в ближайшем будущем будет удален, поэтому он не должен быть красивым, поскольку он будет удален вместе с поддерживающей его конфигурацией.
Что-то вроде этого может сработать:
map $uri $remapped_uri {
default $uri;
~^/manager/([^/]+)$ /manager/$1__cms.php;
~^/manager/js/([^/]+)$ /manager/js/$1_js.php;
}
server {
...
location /manager/ {
index index__cms.php;
rewrite .* $remapped_uri last;
}
}
Но правильно ли этот запрос на yourdomain.com/manager/js/
будет идти к yourdomain.com/manager/js/index__cms.php
? Если это не так, исправьте индексный файл для yourdomain.com/manager/js/
является index_js.php
, вот еще один пример:
map $uri $remapped_uri {
default $uri;
/manager/ /manager/index__cms.php;
~^/manager/([^/]+)$ /manager/$1__cms.php;
/manager/js/ /manager/js/index_js.php;
~^/manager/js/([^/]+)$ /manager/js/$1_js.php;
}
server {
...
location /manager/ {
rewrite .* $remapped_uri last;
}
}
Служить /manager
, /manager/js
так как /manager/
, /manager/js/
:
map $uri $remapped_uri {
default $uri;
~^/manager/?$ /manager/index__cms.php;
~^/manager/([^/]+)$ /manager/$1__cms.php;
~^/manager/js/?$ /manager/js/index_js.php;
~^/manager/js/([^/]+)$ /manager/js/$1_js.php;
}
server {
...
location /manager {
rewrite .* $remapped_uri last;
}
}
Смотрите также этот ответ.