반응형
Nginx의 다중 사이트 WordPress 다시 쓰기 규칙
WordPress와 Nginx로 멀티 도메인 블로그 설치를 실행하려고 합니다.마지막 순서는 에서 몇 가지 개서 규칙을 설정하는 것입니다..htaccess
(웹 서버 전용).이를 Nginx 리라이트 규칙으로 변환하려면 어떻게 해야 하나요?
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# uploaded files
RewriteRule ^files/(.+) wp-includes/ms-files.php?file=$1 [L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule . index.php [L]
nginx Wordpress 3의 개서 규칙 예:
server{
server_name *.example.com;
listen 80;
#on server block
##necessary if using a multi-site plugin
server_name_in_redirect off;
##necessary if running Nginx behind a reverse-proxy
port_in_redirect off;
access_log /var/log/nginx/example-com-access.log;
location / {
root /var/www/example.com/wordpress;
index index.html index.htm index.php;
rewrite ^.*/files/(.*)$ /wp-includes/ms-files.php?file=$1 last;
if (!-e $request_filename) {
rewrite ^.+/?(/wp-.*) $1 last;
rewrite ^.+/?(/.*\.php)$ $1 last;
rewrite ^(.+)$ /index.php?q=$1 last;
}
}
location ~* ^.+\.(html|jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$
{
root /var/www/example.com/wordpress;
rewrite ^/.*(/wp-.*/.*\.(html|jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js))$ $1 last;
rewrite ^.*/files/(.*(html|jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js))$ /wp-includes/ms-files.php?file=$1 last;
expires 30d;
break;
}
location ~ wp\-.*\.php|wp\-admin|\.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/example.com/wordpress$fastcgi_script_name;
}
}
위에는 ^./files/(. (html|jpg|.......) 뒤에 공백이 없습니다.$와 /wp-includes/ms-files.php 앞에 공백이 필요합니다.건배!
WordPress에 대한 이 nginx 개서 규칙은 ex.com/wp-admin를 ex.com/wp-admin/으로 변경하는 것을 포함하여 제 문제를 완벽하게 해결했습니다.
그러나 다음과 같이 몇 시간을 낭비하는 버그를 발견했습니다.static url에 다음이 포함되어 있는 경우.html
같은/%category%/%post_id%.html
다음 항목을 설치해야 합니다.
location ~* ^.+\.(html|jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$
{
root /var/www/example.com/wordpress;
rewrite ^/.*(/wp-.*/.*\.(html|jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js))$ $1 last;
rewrite ^.*/files/(.*(html|jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js))$ /wp-includes/ms-files.php?file=$1 last;
expires 30d;
break;
}
변경 내용:
location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$
{
root /var/www/example.com/wordpress;
rewrite ^/.*(/wp-.*/.*\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js))$ $1 last;
rewrite ^.*/files/(.*(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js))$ /wp-includes/ms-files.php?file=$1 last;
expires 30d;
break;
}
그렇지 않으면 콘텐츠 페이지에 '404 page not found' 오류가 표시됩니다.
대신:
location ~ wp\-.*\.php|wp\-admin|\.php$ {
변경 내용:
location ~ .php$
지시할 수 있습니다.
blog.com/wp-admin
로.
blog.com/wp-admin/
언급URL : https://stackoverflow.com/questions/3491258/multi-site-wordpress-rewrite-rules-in-nginx
반응형
'it-source' 카테고리의 다른 글
각도 구성 요소: 템플릿 바꾸기 옵션이 없습니까? (0) | 2023.02.16 |
---|---|
다운로드 기능이 asp.net 업데이트 패널 내에서 작동하지 않음 (0) | 2023.02.16 |
스프링 부트 2.6 회귀:어댑터의 Keyclock 순환 의존성을 수정하려면 어떻게 해야 합니까? (0) | 2023.02.16 |
WordPress 플러그인에서 TinyMCE 호출 (0) | 2023.02.16 |
ng-if를 ng-repeat 내의 스위치로 사용합니까? (0) | 2023.02.16 |