У меня есть проблема, которую я не могу решить. У меня новый сайт, созданный на yii2
. Мне нужно, чтобы старый URL с веб-сайтов людей правильно обрабатывался на моем конце.
Старый URL
domain.name/customer_name/index.php?parameters
Новый URL Я думаю, обрабатывать customer name
у повара ie, чтобы иметь возможность динамически управлять всеми клиентами. поэтому мне нужно проверить nginx правило на локальном хосте и передать apache на удаленном. Вот новый URL:
domain.name/index?company=customer_name
Так что мой вопрос в том, как получить имя папки TOP из URL и использовать его как параметр при перенаправлении?
Что я пробовал до сих пор с простой тестовый php веб-сайт (не в конфигурации yii2):
root /var/www/Test;
index index.php index.html index.htm;
server_name test.local;
#log errors in local folder
error_log /var/www/Test/logs/error.log error;
client_max_body_size 32m;
#redirect with param
location /(\w+)/(.*)$ {
rewrite ^ /index.php?company=$1 break;
}
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ /index.php =404;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
}
# Only for nginx-naxsi used with nginx-naxsi-ui : process denied requests
#location /RequestDenied {
# proxy_pass http://127.0.0.1:8080;
#}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
#error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
try_files $uri $uri/ /index.php =404;
fastcgi_split_path_info ^(.+.php)(/.+)$;
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
Итак, когда я пытаюсь получить доступ, скажем, domain.name/folder5/index.php
(который не существует), я получаю ответ от domain.name/index.php
, но без перенаправления.
Примечание Мне также нужно рассмотреть вопрос о сохранении доступа к папке images
, расположенной в каталоге root
, поэтому запрос не следует перенаправлять на /index.php?customer=images
Вот как он обрабатывается прямо сейчас в yii2:
nginx config :
location / {
root /var/www/domain/frontend/web;
try_files $uri /frontend/web/index.php?$args;
location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
try_files $uri /frontend/web/$1?$args;
}
}