【问题标题】:Wordpress NGINX redirect everything to new domain EXCEPTWordpress NGINX 将所有内容重定向到新域,除了
【发布时间】:2016-07-28 10:41:34
【问题描述】:

我有一个不寻常的设置,因为我有一个在 http://example.com 上运行的 angularJS 应用程序,它通过位于 http://api.example.com 的 wordpress api 提取数据。

http://api.example.com 需要有 /wp-login/wp-admin/wp-content/wp-includes 网址才能像普通的 wordpress 网站一样工作。

但是所有其他 url 像 http://api.example.com/category/excategoryhttp://api.example.com/this-is-a-post-title 需要重定向 301 到 http://example.com domain.

示例:

http://api.example.com/category/excategory

重定向到

http://example.com/category/excategory

但是

http://api.example.com/wp-admin (and anything after it)

没有。

我尝试过各种疯狂的事情,但我的位置块似乎要么冲突,要么我得到了无处可去的奇怪 url。

这是一个失败的尝试:

location ~ /wp-(?:admin|login|includes|content) {
index index.php;
try_files $uri $uri/ /index.php?$args;
}

location / {
   return 301 $scheme//example.com$request_uri
}

【问题讨论】:

  • 尝试更新您的永久链接结构。查看您的 .htaccess 文件是否可写。
  • 考虑到这是一个 NGINX 设置,.htaccess 是一个合适的解决方案吗?
  • 嗯,.htaccess 不是一个合适的解决方案。尝试将永久链接结构设置为默认值,看看您是否可以访问这些页面。
  • 我可以访问这些页面,但我希望它们重定向到一个新域,除了我上面提到的那些。这不是无法访问的问题,我只是想找出一些页面的重定向规则。

标签: wordpress nginx


【解决方案1】:

将此代码放入您的 WP Theme Functions.php 文件中。它应该重定向除包含 wp-admin 的所有 url:

 add_action('init','_redirect_api_url');

 function _redirect_api_url(){
    $redirect = TRUE;
    $pathNotToRedirect = array('wp-admin','wp-content', 'wp-login','wp-includes');
    $path = "http://example.com".$_SERVER['REQUEST_URI'];
    foreach($pathNotToRedirect as $val){
        if(strpos($path, $val)){
           $redirect = FALSE;
           break;  
        }
    }
    if($redirect == TRUE) {
       header("Location: ".$path);

    }
 }

【讨论】:

  • 这还会重定向 /wp-content /wp-login 和 /wp-includes 吗?我需要那些留在 api.example.com
猜你喜欢
  • 1970-01-01
  • 2022-01-19
  • 2012-10-06
  • 2019-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-04
  • 2022-09-30
相关资源
最近更新 更多