因.htaccess配置问题导致WordPress站点访问异常的技术求助
WordPress目录隐藏后的内页访问问题修复
问题描述
我的APK可通过logo-centar.com/app正常访问,站点需通过主域名logo-centar.com访问,但WordPress实际安装在public_html/wordpress目录,URL中不能显示该目录。目前访问logo-centar.com/o-nama等内页时无法正常加载,甚至wp-login页面点击登录仅刷新页面,将站点移至子域名后可正常运行,推测问题出在.htaccess配置。
当前.htaccess内容
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=307,L] RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^(.*)$ https://www.%{SERVER_NAME}%{REQUEST_URI} [R=307,L] RewriteCond %{HTTP_HOST} ^www.logo-centar.com$ RewriteCond %{REQUEST_URI} !^/wordpress/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /wordpress/$1 RewriteCond %{HTTP_HOST} ^www.logo-centar.com$ RewriteRule ^(/)?$ wordpress/index.php </IfModule>
问题分析
当前配置存在以下缺陷:
- 仅处理根目录请求转发,未让WordPress接管所有非静态文件的路由,导致内页、登录页无法被正确解析
- 临时重定向(307)不适合永久域名跳转场景,易导致浏览器缓存异常
- 缺少WordPress核心重写规则,无法处理固定链接格式的内页请求
修正后的.htaccess配置
<IfModule mod_rewrite.c> RewriteEngine On # 强制所有请求跳转至HTTPS RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] # 强制添加www前缀 RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] # 将请求转发至wordpress目录,排除已存在的文件/目录及APK访问路径 RewriteCond %{HTTP_HOST} ^www\.logo-centar\.com$ RewriteCond %{REQUEST_URI} !^/wordpress/ RewriteCond %{REQUEST_URI} !^/app/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /wordpress/$1 [L] # 让WordPress核心处理所有路由请求 RewriteCond %{HTTP_HOST} ^www\.logo-centar\.com$ RewriteRule ^ /wordpress/index.php [L] </IfModule>
关键修正点说明
- 重定向类型调整:将临时重定向(307)改为永久重定向(301),符合SEO规范并减少浏览器重复跳转
- 域名变量优化:强制www规则中使用
%{HTTP_HOST}替代%{SERVER_NAME},避免服务器配置差异导致的错误 - 路径排除规则:添加
!^/app/条件,保证APK访问路径不受转发规则影响 - 路由接管逻辑:最后一条规则直接将所有符合条件的请求转发至WordPress的
index.php,让WordPress处理内页、登录页等所有动态路由 - 规则终止标记:所有转发规则添加
[L]标记,确保当前规则处理完成后停止后续规则解析,避免冲突
后续操作
- 登录WordPress后台,进入「设置-固定链接」页面,点击「保存更改」,让WordPress自动生成适配的内部重写规则
- 确认服务器已启用
mod_rewrite模块 - 检查
.htaccess文件权限,确保服务器拥有读取权限
内容的提问来源于stack exchange,提问作者Nemanja Sabo
相关产品推荐
相关产品推荐

