请问,如何在Nginx中做这个简单的操作:
我希望每个uris请求都是这样的: http : //example.com/adm或者: http : //example.com/adm转到wordpresslogin页面:wordpress / wp-login.php(wordpress安装在文件夹“wordpress”)。
我试过了:
location /adm/ { alias wordpress/wp-login.php; } location /adm { alias wordpress/wp-login.php; }
和:
rewrite ^/adm$ wordpress/wp-login.php;
但没有成功…更糟糕的是,有些规则,比如“rewrite / adm wordpress / wp-login.php” (这工作!),自动redirect一些请求,一旦用户login,到默认的WordPress的pipe理页面…我不知道为什么…
以防万一有人问,这是我的发球局。 文件:
server { server_name www.example.com; rewrite ^ http://example.com$request_uri? permanent; } server { server_name example.com; access_log /var/log/nginx/example.com.access; error_log /var/log/nginx/example.com.error; root /var/www/example.com; index index.htm index.php; location / {try_files $uri /wp$uri/ /wordpress/index.php$args;} location ~ .php$ { try_files $uri =404; #fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /etc/nginx/fastcgi_params; } location = /favicon.ico {log_not_found off;access_log off;} location = /robots.txt {allow all;log_not_found off;access_log off;} location ~ /\. {deny all;access_log off;log_not_found off; } }
谢谢。
我需要同样的东西,但上面的答案看起来有点奇怪。 对于其他人正在寻找解决scheme。 我结束了使用以下内容:
location ~* /login/ { rewrite ^/login/(.*)? /wp-admin/$1; }
Nginx论坛的人帮我find了一个解决scheme: http : //forum.nginx.org/read.php?2,202235,202475#msg-202475
这是他们想出来的:
location = /adm/ { fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME /var/www/example.com/wordpress/wp-login.php include /etc/nginx/fastcgi_params; } location = /adm { fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME /var/www/example.com/wordpress/wp-login.php include /etc/nginx/fastcgi_params; }