只有默认永久链接工作wordpress其他成为404错误

问题描述 投票:1回答:6

我的问题是在我的wordpress网站上只有默认永久链接正在工作..当我更改永久链接时,所有页面都找不到..只显示主页。

当我将永久链接更改为postname .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

而且默认情况下是

# BEGIN WordPress

# END WordPress

还尝试使用此获取mod_rewrite的状态

in_array( 'mod_rewrite', apache_get_modules())

它返回1并且在我的服务器上启用了mod_rewrite,并使用phpinfo()进行了检查。 mod_rewrite模块已加载..我已经浏览了互联网上的所有文件..请帮我解决这个问题..我的托管服务器是godaddy ..

php wordpress apache .htaccess mod-rewrite
6个回答
6
投票

它可能是您数据库中损坏的rewrite_rules字段。

我将“Yoast SEO”安装到了一个现场网站,完全打破了它。我禁用了该插件,但它没有恢复工作。只有默认永久链接才有效。

像其他人一样,我尝试了常用的东西 - 检查.htaccess,确保mod_rewrite正在服务器上工作,再次保存永久链接设置,但没有任何工作。主页将加载,wp-admin页面将加载,但其他一切只是加载“最新帖子”默认页面。

最后,数据库中rewrite_ruleswp_options字段出现问题。

我有三个版本的网站(本地,登台和制作),都来自一个SVN基地,所以我知道这不是一个文件问题。但只有本地开发版本正在运行。

我将破坏的实时网站的rewrite_rules字段的内容替换为我本地开发网站上的工作内容,并且它有效。

真正奇怪的是删除rewrite_rules字段并让WordPress重建它并没有解决问题。只有替换以前工作版本的网站的内容才有效。

我仍然对此感到困惑,如果我发现有关此问题的任何进一步信息,我将编辑此回复。


1
投票

不确定这是为时已晚。我面临同样的问题,并通过改变解决

AllowOverride None

AllowOverride All

在/etc/apache2/sites-enabled/000-default.conf文件中。希望这会有所帮助。


1
投票

我有完全相同的问题并通过运行修复它

sudo a2enmod rewrite

然后重启apache。显然这个问题是由mod_rewrite在ubuntu上可能无法正常工作引起的。

我找到了解决方案here


1
投票

遭遇同样的问题。在SSL上使用站点不得不更改000-default.conf,而是更改相应的SSL conf文件。添加

在DocumentRoot / var / www / html之后

the following

<Directory "/var/www/html">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
</Directory>

然后重新启动apache2保存我的网站....没有其他工作。问题是Wordpress SSL和SEO插件弄乱了配置文件。


0
投票

如果你在Ubuntu上,编辑文件/etc/apache2/apache2.conf(这里我们有一个/ var / www的例子):

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

并将其更改为:

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

还要检查您的网站/etc/apache2/sites-available/your_site.conf的Apache配置文件:

<Directory /var/www/your_site_path/>
    AllowOverride None
</Directory>

并将其更改为:

<Directory /var/www/your_site_path/>
    AllowOverride All
</Directory>

你需要做sudo a2enmod重写才能启用模块重写

然后,

sudo service apache2 restart

我希望这可以帮助你!


-2
投票

转到“永久链接设置”页面,然后选择“默认”选项并保存更改。现在测试您的问题是否得到解决。

© www.soinside.com 2019 - 2024. All rights reserved.