나는 nginx rewrite에서 혼란스러워합니다. 할 수 있으면 도와주세요 .. 감사합니다
xxxx.conf
#vhost-xxxxx
server {
listen 80;
server_name xxxx.xxxx.com;
root /var/www/html;
index index.php index.html index.htm;
charset utf-8;
access_log logs/xxxxxx.access.log;
}
#rewrite
if (!-e $request_filename)
{
rewrite ^(.+)$ /cn/index.php?q=$1 last;
}
location ~ \.php$ {
root /var/www/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
안녕 모두, 내 nginx가 / var / www / html 아래의 / var / www / html 루트 폴더를 가리키고 있습니다. 3 개의 폴더 cn, my, en이 있습니다
따라서 xxxxx.xxxxx.com/cn/으로 진행하면 아무런 문제가 없습니다.
그러나 xxxxx.xxxxx.com/en 또는 / my로 처리하면 403 Forbidden이 표시됩니다.
나는이 설정을 수행하기 전에 시도
#rewrite
if (!-e $request_filename)
{
rewrite ^(.+)$ /cn/index.php?q=$1 last;
rewrite ^(.+)$ /en/index.php?q=$1 last;
rewrite ^(.+)$ /my/index.php?q=$1 last;
}
그러나 cn의 경우에만 작동하고 다른 장치는 금지됩니다.
사용자가 / en에 갔다가 다시 쓰면 어떻게 만들 수 있습니까
rewrite ^(.+)$ /en/index.php?q=$1 last;
또는 내 사용자가 / my로 다시갑니다.
rewrite ^(.+)$ /my/index.php?q=$1 last;
내가 구체적으로 만들 수있는 방법
ps : // my 도메인 이름은 완전히 같습니다.
고마워, 도와 줘서 고마워
}
이전#rewrite
에 의심 스러웠지만 아마도 오타 일 것입니다.