用wordpress搭建的网站,设置伪静态页面后,主页设置了不生效?

当时后台设置后,会有404错误,然后修改了nginx,就产生主页设置了不生效的问题,代码如下:
在 /etc/nginx/config.d/mysit.conf文件的 loction \ {} 中添加

if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;}
if (!-f $request_filename){
rewrite (.*) /index.php;}

rewrite /wp-admin$ $scheme://$host$uri/ permanent;

当你在 WordPress 站点中启用伪静态页面后,可能需要修改 .htaccess 文件(如果使用 Apache 服务器)或 nginx 配置文件(如果使用 nginx 服务器)来支持伪静态。但这个修改步骤可能会对主页的访问产生影响,从而导致主页无法正常显示。
以下是一些检查和解决方法:
1. 检查 .htaccess 或 nginx 配置文件是否正确设置。确认文件在对应的服务器目录中,其内容与你想要的相同。
2. 检查主页的模板是否正确设置。可能要重新定义主页模板,以确保它具有与其他页面不同的设计和结构,以便正确实现伪静态。
3. 消除插件和主题的干扰。尝试在禁用所有插件和主题的情况下,检查主页是否可以正常显示。然后逐一启用它们,看看哪个插件或主题引起了问题。
4. 清除缓存,重新加载网站。如有使用缓存插件,可以清除缓存再重新访问主页。
5. 联系 WordPress 技术支持。如果你尝试了以上所有方法仍然无法解决问题,可以联系 WordPress 的技术支持或者在社区寻求帮助。
以上仅是一些常见的解决方法,如果问题仍然存在,建议联系 WordPress 技术支持或相关人员寻求帮助。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-06-20

如果您的主题没有正确地支持伪静态页面设置,可能有几个原因导致这个问题。

首先,您需要确保您的主题已经正确地配置了伪静态页面,并且主页文件的命名和位置与伪静态设置相匹配。有时候,主题的设置可能需要手动修改以支持伪静态页面。

如果您的主题没有直接支持伪静态页面设置,您可以考虑使用插件来实现这个功能。WP Super Cache、W3 Total Cache和Yoast SEO等常见的插件可以帮助您实现伪静态页面设置。这些插件通常提供了简单的配置选项,可以帮助您轻松地启用伪静态页面功能。

 此外,缓存也可能导致问题。在设置完伪静态页面后,您可以尝试清除浏览器缓存和WordPress缓存,并重新加载页面,以查看是否生效。有时候,缓存可能会导致页面没有正确显示。 

综上所述,如果您的主题没有正确地支持伪静态页面设置,您可以通过手动配置、使用插件或清除缓存来解决这个问题。请确保按照正确的步骤进行操作,并仔细检查每以确保伪静态页面设置能够正常工作。

另外,根据您提供代码,为您提供一些修改建议,您可以参考一下:

    在location {}块中添加if语句会引起语法错误。正确的语法应该是在location {}块中使用if指令以及引号包裹条件:```nginx
    location / {
    if (-f $request_filename/index.html){
    rewrite (.*) $1/index.html break;
    }
    if (-f $request_filename/index.php){
    rewrite (.*) $1/index.php;
    }
    if (!-f $request_filename){
    rewrite (.*) /index.php;
    }
    }
    ```

    路径匹配规则可能不正确。如果你想匹配根路径("/"),你应该使用location / {},而不是location \ {}:
    ```nginx
    location / {
    if (-f $request_filename/index.html){
    rewrite (.*) $1/index.html break;
    }
    if (-f $request_filename/index.php){
    rewrite (.*) $1/index.php;
    }
    if (!-f $request_filename){
    rewrite (.*) /index.php;
    }
    }
    ```

    rewrite规则之间可能存在冲突。根据你的需求,可能需要添加break关键字来终止rewrite规则的检查:
    ```nginx
    location / {
    if (-f $request_filename/index.html){
    rewrite (.*) $1/index.html break;
    }
    if (-f $request_filename/index.php){
    rewrite (.*) $1/index.php break;
    }
    if (!-f $request_filename){
    rewrite (.*) /index.php;
    }
    }
    ```

    /wp-admin路径的重写规则可能导致重定向循环或404错误。你可以尝试将它移动到其他location块或更改重定向规则:
    ```nginx
    location /wp-admin {
    rewrite ^/wp-admin(.*)$ $scheme://$host$1/ permanent;
    }
    ```

    需要注意的是,在修改nginx配置文件后,你需要重新加载或重启nginx服务才能使修改生效。

第2个回答  2023-06-20

当你使用WordPress搭建网站并设置伪静态页面后,发现主页没有生效时,可能会让你感到有些焦虑和困惑。这时候,你可以尝试以下方法来解决问题:

    确认设置是否正确:进入WordPress后台,选择“设置”>“固定链接”选项,确保你已经将其设置为“自定义链接”格式,并输入了正确的链接地址。比如,你可以输入/%year%/%month%/%postname%/作为链接地址,这样能够确保你的主页能够正确显示。

    清除缓存:有时候,浏览器缓存或WordPress缓存可能会导致你的设置无法立即生效。因此,你可以尝试清除浏览器缓存和WordPress缓存,以确保你的设置能够立即生效。

    检查主题:某些主题可能不支持伪静态设置。你可以尝试更换主题或使用默认主题,以确定是否是主题导致的问题。

    检查插件:某些插件可能会导致伪静态设置失效。因此,你可以尝试禁用你的插件,以确定是否有插件导致的问题。

    当你尝试了以上方法仍然无法解决问题时,你可以在WordPress官方文档或论坛中寻求帮助。在这些地方,你可以获得更多关于伪静态设置的详细指导,并从其他WordPress用户那里获得帮助和支持。

第3个回答  2023-06-15
可能是因为伪静态设置不正确或者缓存问题导致的。
您可以尝试以下解决方法:
1. 检查伪静态设置是否正确,确保主页的URL被正确地转换为静态URL。
2. 清除浏览器缓存和网站缓存,然后重新加载网站。
3. 禁用所有插件并重新启用它们,以查看是否有任何插件与主页设置冲突。
4. 检查您的主题设置,确保您没有禁用主页或设置了其他页面作为主页。
如果以上方法都无法解决问题,您可以尝试联系您的主机提供商或WordPress支持团队以获取更多帮助。
第4个回答  2023-06-15
这个问题可能是由于 Nginx 配置文件中的重写规则导致的。这些规则可能导致 WordPress 的某些页面无法正常访问,包括主页。因此,您需要检查您的 Nginx 配置文件,特别是与 WordPress 相关的部分,以确保它们正确。
此外,您可以尝试禁用您添加到 Nginx 配置文件中的重写规则,看看是否解决了主页设置不生效的问题。如果禁用它们后问题得到解决,那么您需要重新考虑您的重写规则,并确保它们不会干扰 WordPress 的正常运行。
最后,您可以尝试在 WordPress 中使用插件来处理 URL 重写,例如 WP Rewrite,它可以帮助您在不需要手动修改 Nginx 配置文件的情况下设置伪静态页面。
希望这些信息能够帮助您解决问题。
相似回答