本地UniServer部署WordPress修改固定链接后遇403禁止访问问题求助
我来帮你搞定这个问题!你遇到的这个403错误,本质是Apache服务器没有权限读取或执行WordPress生成的.htaccess重写规则,或者相关的重写模块没配置对。下面是一步步的解决方案:
第一步:确认Apache的mod_rewrite模块已启用
打开UniServer的控制面板,找到Apache的模块管理选项,看看mod_rewrite有没有被勾选启用。如果是手动配置的话,找到UniServer安装目录下的apache\conf\httpd.conf文件,找到这一行:#LoadModule rewrite_module modules/mod_rewrite.so把开头的
#去掉,保存文件后重启Apache服务。第二步:修改站点目录的AllowOverride配置
这是最常见的原因!UniServer默认可能限制了站点目录读取.htaccess的权限。找到Apache的配置文件(httpd.conf或者对应的虚拟主机配置文件httpd-vhosts.conf),定位到你的WordPress站点所在目录的配置块,把AllowOverride None改成AllowOverride All,示例配置如下:<Directory "D:\UniServer\www\your-wordpress-folder"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>修改完成后一定要重启Apache,让配置生效。
第三步:修复.htaccess文件的权限
右键打开WordPress根目录下的.htaccess文件属性(Windows系统),确保它没有被设置为“只读”,并且UniServer的Apache进程拥有读取和写入权限。如果是用文件管理器操作,把权限设置为644(所有者可读可写,组和其他用户只读)就可以了。第四步:手动生成正确的.htaccess内容
如果WordPress自动生成的.htaccess有问题,你可以手动创建一个:先删除现有的.htaccess文件,然后新建一个文本文件,写入以下内容:# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress保存后重命名为
.htaccess,再回到WordPress后台重新保存固定链接设置试试。第五步:检查UniServer的安全模块拦截
少数情况下,UniServer自带的安全模块(比如mod_security)可能会拦截.htaccess的修改操作。你可以暂时关闭这个模块测试一下,或者在安全配置里添加规则允许WordPress的固定链接相关请求。
按照上面的步骤操作,基本就能解决这个403禁止的问题了,重点是第二步的AllowOverride设置,很多本地服务器套件默认都是关闭的。
内容的提问来源于stack exchange,提问作者itfidds

