WordPress别名域名重定向异常与404问题排查咨询
WordPress别名域名CNAME配置后异常重定向问题
我们有一个别名域名alias.com,通过CNAME指向originaldomain.com,访问WordPress站点时出现以下异常:
- 访问
https://alias.com/会被重定向至https://originaldomain.com/en/ - 访问
https://alias.com/contact时,会错误重定向到https://alias.comcontact/(/contact前的斜杠丢失) - 访问带语言路径的页面如
/en/contact,原域名可正常加载,但别名域名返回WordPress主题样式的404页面(非Web服务器默认404)
已确认重定向由WordPress发起(响应头包含X-Redirect-By: WordPress),但www.originaldomain.com可正常访问对应页面,与alias.com的CNAME配置逻辑一致却表现不同。怀疑问题源于WP核心或TranslatePress插件(该插件不可禁用),希望通过functions.php自定义钩子、日志等方式排查根源。
相关配置及调试信息
wp-config.php配置
define('WP_HOME', 'https://' . $_SERVER['HTTP_HOST']); define('WP_SITEURL', 'https://' . $_SERVER['HTTP_HOST']);
.htaccess配置
# BEGIN WordPress # The directives (lines) between "BEGIN WordPress" and "END WordPress" are # dynamically generated, and should only be modified via WordPress filters. # Any changes to the directives between these markers will be overwritten. Options -Indexes <IfModule mod_rewrite.c> RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress # BEGIN cPanel-generated php ini directives, do not edit # Manual editing of this file may result in unexpected behavior. # To make changes to this file, use the cPanel MultiPHP INI Editor (Home >> Software >> MultiPHP INI Editor) # For more information, read our documentation (https://go.cpanel.net/EA4ModifyINI) <IfModule php8_module> php_flag display_errors Off php_value max_execution_time 300 php_value max_input_time 60 php_value max_input_vars 3000 php_value memory_limit 512M php_value post_max_size 516M php_value session.gc_maxlifetime 1440 php_value session.save_path "/var/cpanel/php/sessions/ea-php82" php_value upload_max_filesize 512M php_flag zlib.output_compression Off </IfModule> <IfModule lsapi_module> php_flag display_errors Off php_value max_execution_time 300 php_value max_input_time 60 php_value max_input_vars 3000 php_value memory_limit 512M php_value post_max_size 516M php_value session.gc_maxlifetime 1440 php_value session.save_path "/var/cpanel/php/sessions/ea-php82" php_value upload_max_filesize 512M php_flag zlib.output_compression Off </IfModule> # END cPanel-generated php ini directives, do not edit # php -- BEGIN cPanel-generated handler, do not edit # Set the “ea-php82” package as the default “PHP” programming language. <IfModule mime_module> AddHandler application/x-httpd-ea-php82___lsphp .php .php8 .phtml </IfModule> # php -- END cPanel-generated handler, do not edit
functions.php中的调试钩子
add_action('init', function() { if (is_admin()) return; header('X-DEBUG-HOST: ' . $_SERVER['HTTP_HOST']); header('X-DEBUG-HOME: ' . get_home_url()); header('X-DEBUG-SITEURL: ' . get_site_url()); });
调试响应头信息
1. 访问https://alias.com时的响应头
- 301重定向响应头:
301 Moved Permanently ... Location: https://originaldomain.com/en/ x-debug-home: https://originaldomain.com/en x-debug-host: alias.com x-debug-siteurl: https://originaldomain.com x-redirect-by: WordPress
- 重定向后的200响应头:
200 OK ... x-debug-home: https://originaldomain.com/en x-debug-host: originaldomain.com x-debug-siteurl: https://originaldomain.com x-redirect-by: WordPress
2. 访问https://alias.com/contact时的响应头
- 第一次301重定向响应头:
301 Moved Permanently ... Location: https://alias.com/contact/ x-debug-home: https://alias.com/ x-debug-host: alias.com x-debug-siteurl: https://alias.com/ x-redirect-by: WordPress
- 第二次301重定向响应头:
301 Moved Permanently ... Location: https://alias.comcontact/ x-debug-home: https://alias.com x-debug-host: alias.com x-debug-siteurl: https://alias.com x-redirect-by: WordPress
关键发现:第二次重定向时,homeurl和siteurl丢失了末尾斜杠。
内容的提问来源于stack exchange,提问作者HelloWorld
相关产品推荐
相关产品推荐

