http://efreedom.com/Question/1-3491258/Multi-Site-Wordpress-Rewrite-Rules-Nginx
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
;
}
}
http://www.yeeann.com/archives/104.html
How to:Nginx rewrite rules for WordPress Multi-Site
在WordPress 3.0中,如果你想启用Multi-Site的功能,是需要对WebServer做一些必要的rewrite rules设置的。如果你用的是Apache,只需要把安装WordPress时生成的rewrite rules复制到Apache的配置文件即可。如果是使用Nginx作为WebServer,可以参考下面的rewrite规则,经过某的测试基本没问题。
rewrite ^.*/files/(.*)$ /wp-includes/ms-files.php?file=$1 last;
rewrite ^(.*)?(/wp-(content|admin|includes)/.*) $2 last;
rewrite ^(.*)?(/wp-.*\.php)$ $2 last;
location / {
index index.php;
if (!-e $request_filename) {
rewrite ^.+?(/wp-.*) $1 last;
rewrite ^.+?(/.*\.php)$ $1 last;
rewrite ^ /index.php last;
}
}
需要完善的地方有待改进...
rewrite ^.*/files/(.*)$ /wp-includes/ms-files.php?file=$1 last;
rewrite ^(.*)?(/wp-(content|admin|includes)/.*) $2 last;
rewrite ^(.*)?(/wp-.*\.php)$ $2 last;
location / {
index index.php;
if (!-e $request_filename) {
rewrite ^.+?(/wp-.*) $1 last;
rewrite ^.+?(/.*\.php)$ $1 last;
rewrite ^ /index.php last;
}
}
分享到:
相关推荐
Nginx 提供了多种方式进行 URL 重定向,包括 `proxy_pass`、`return` 和 `rewrite`。 ##### 2.1 Proxy_pass `proxy_pass` 主要用于将请求转发到后端服务器。它可以指定具体的主机名和端口,也可以使用 `upstream` ...
`rewrite`指令用于重定向`/wp-admin`到带斜杠的版本,以避免URL规范化问题。`location ~ \.php$`部分处理所有.php文件,将请求转发给PHP-FPM处理。静态文件的处理通过其他location块实现,通过设置缓存策略提高加载...
这里要注意,`rewrite`指令用于执行URL重写,`break`关键字表示结束当前重写规则的处理。 在完成了配置修改后,记得保存文件并重启Nginx服务,以使新的配置生效。在Linux环境下,你可以使用以下命令来重启Nginx: ...
在使用Nginx作为Web服务器时,可能会遇到路径问题,尤其是在处理WordPress后台管理路径/wp-admin时。当用户在访问后台管理链接时,如果忘记在链接末尾加上斜杠,WordPress的链接将会产生404错误。这主要是因为Nginx...
在配置Nginx的重写规则时,要确保正确处理静态文件、PHP脚本以及WordPress的URL结构。通常,这包括对`try_files`、`rewrite`和`if`指令的使用,以及对`fastcgi_pass`的设置,以确保PHP请求能正确转发到FastCGI服务器...
rewrite ^/wp-admin$ $scheme://$host$uri/permanent; ``` 对于SEO优化,可以考虑使用WPSlugTranslate这类插件来自动将中文标题转换成英文,以提高搜索引擎优化(SEO)效果。这样即使出现中文链接,也有助于搜索...
4. **URL重写**:通过Nginx的rewrite模块,可以实现友好的URL结构,提高SEO效果。 **二、WordPress与Nginx集成** 1. **FastCGI进程管理器**:PHP-FPM(FastCGI Process Manager)负责处理PHP脚本。Nginx将HTTP请求...
2. 使用global关键字调用WP的全局变量,如$wp、$wp_rewrite和$rewrite_config,以确保在自定义函数中可以访问WordPress核心的函数和属性。 3. 创建自定义函数wpdaxue_pm_the_posts(),该函数会在WordPress处理单个...
wp_redirect( admin_url( 'options-general.php' ) ); die; } add_action( 'load-themes.php', 'Bing_theme_activation' ); ``` 同样,在插件激活时更新伪静态规则,可以使用`register_activation_hook`函数,...