Nginx使用try_files重写规则

时间:2013-06-16 09:57:25

标签: .htaccess nginx

我需要帮助将此.htaccess转换为Nginx。这是.htaccess代码:

RewriteRule wp-content/thesis/skins/(.*)/css.css wp-admin/admin-post.php?action=thesis_do_css

我已将这些规则转换为在线nginx转换器。到目前为止,我得到了这段代码:

 rewrite /wp-content/thesis/skins/(.*)/css.css /wp-admin/admin-post.php?action=thesis_do_css;

我将这些代码放在try_files规则下面。这是完整的代码:

 location / {
  try_files $uri $uri/ /index.php?q=$uri$is_args&$args;
  rewrite /wp-content/thesis/skins/(.*)/css.css /wp-admin/admin-post.php?action=thesis_do_css;
  }

所以,它没有用。请帮我理解nginx规则。谢谢。

贝尼

2 个答案:

答案 0 :(得分:1)

try_files是最终的。你不能在它之后放任何东西并期望它被评估。将try文件看作if-then-else语句,其中最后一部分始终是else。由于可能涉及更多规则,因此最好咨询WordPress codex

答案 1 :(得分:0)

如果您只需要将一个css.css文件重写为wp-admin / admin-post.php?action = thesis_do_css,那么试试这个:

    if ($request_filename ~ wp-content/thesis/skins/classic-r/css.css ) {
            rewrite ^ http://mydomain.com/wp-admin/admin-post.php?action=thesis_do_css? permanent;
    }

那应该在你的server{区块内。当然,请务必将mydomain.com更改为您的实际域名。

我希望有所帮助。