nginx перенаправляет в подпапку для более симпатичных ссылок
У меня есть вопрос, касающийся перенаправления nginx / try_files:
У меня есть веб-сайт (vhost, управляемый ISPConfig3) по адресу www.XXXYYY.com
В корневом каталоге находятся папки, index.php и так далее.
Я хочу определенные файлы в www.XXXYYY.com/folder21/public/309273.php
быть доступным в www.XXXYYY.com/309273
(чтобы иметь более красивые ссылки).
Однако все, что я пробовал, либо не работало, либо.php-файлы загружались, а не обрабатывались PHP-FPM…
Это директива nginx vhost, которую я сейчас пробую в ISPConfig3:
Это устанавливается ISPConfig3:
location ~ \.php$ {
try_files @php;
}
location @php {
try_files $uri =404;
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9026;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors on;
}
Это часть, которую я добавляю внизу vhost-файла:
location / {
try_files $uri $uri/ /folder21/public/$uri.php /index.php =404;
}
location /folder21/ { internal; }
location /folder21/public/ {
try_files $uri $uri/ $uri.php;
}
Любая помощь по этому вопросу приветствуется!
1 ответ
Вот что я закончил для pydio:
location /conf/ { deny all; }
location /data/ { internal; }
location /data/public/ {
try_files $uri $uri/ $uri.php?$args;
rewrite ^/data/public/([a-z0-9]+)-([a-z]+)$ /data/public/$1.php?lang=$2 last;
}
location ^~ /share/ {
rewrite ^/share/(.*)$ /data/public/$1 last;
}
PHP-файлы в /data/public
теперь обслуживаются через /share
без необходимости.php-окончания.
Файлы в формате например /data/share/XYZ123-en
переписываются/data/share/XYZ-123.php?lang=en
,