Multi Site WordPress rewrite rules in Nginx - Printable Version +- 0Day Forums (https://zeroday.vip) +-- Forum: Coding (https://zeroday.vip/Forum-Coding) +--- Forum: CMS (https://zeroday.vip/Forum-CMS) +---- Forum: WordPress (https://zeroday.vip/Forum-WordPress) +---- Thread: Multi Site WordPress rewrite rules in Nginx (/Thread-Multi-Site-WordPress-rewrite-rules-in-Nginx) |
Multi Site WordPress rewrite rules in Nginx - allergic667 - 07-27-2023 I'm trying to run a multi domain blog installation with WordPress and Nginx. The last step is to configure some rewrite rules in `.htaccess` (apache only) for the webserver. How do I translate this into Nginx rewrite rules? 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] RE: Multi Site WordPress rewrite rules in Nginx - septal969 - 07-27-2023 Above is missing a space after the rewrite ^.*/files/(.*(html|jpg|....... you need a space after the $ and before /wp-includes/ms-files.php. Cheers! RE: Multi Site WordPress rewrite rules in Nginx - proceleusmatic642 - 07-27-2023 [nginx rewrite rules example for Wordpress 3][1] : 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; } } [1]: [To see links please register here] RE: Multi Site WordPress rewrite rules in Nginx - Sirgayal345 - 07-27-2023 Instead of: location ~ wp\-.*\.php|wp\-admin|\.php$ { Change it to: location ~ .php$ Allows it to direct blog.com/wp-admin to blog.com/wp-admin/ RE: Multi Site WordPress rewrite rules in Nginx - thenceforward587 - 07-27-2023 This nginx rewrite rules for WordPress have solved my problem perfectly,including changing ex.com/wp-admin to ex.com/wp-admin/. But i've found a bug inside which wasted me several hours as follows: If the static url include `.html` just like `/%category%/%post_id%.html`,you have to insted of: <!-- begin snippet: js hide: false --> <!-- language: lang-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; } <!-- end snippet --> Change it to: <!-- begin snippet: js hide: false --> <!-- language: lang-html --> 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; } <!-- end snippet --> Or,u'll had '404 page not found' error in the content pages! |