[英]Wordpress NGINX redirect everything to new domain EXCEPT
我有一個不同尋常的設置,我在http://example.com
上運行了一個angularJS應用程序,它通過位於http://api.example.com
的wordpress api提取數據。
http://api.example.com
需要有/wp-login
, /wp-admin
, /wp-content
和/wp-includes
url才能正常工作,就像它仍然是一個普通的wordpress網站一樣。
但是所有其他網址如http://api.example.com/category/excategory
或http://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)
才不是。
我嘗試了各種瘋狂的事情,但我的位置塊似乎要么發生沖突,要么我得到了奇怪的網址,無處可去。
這是一次失敗的嘗試:
location ~ /wp-(?:admin|login|includes|content) {
index index.php;
try_files $uri $uri/ /index.php?$args;
}
location / {
return 301 $scheme//example.com$request_uri
}
將此代碼放在WP Theme Functions.php文件中。 除了包含wp-admin的網址外,它應該重定向所有網址:
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);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.