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

uajslkp6  于 2023-01-29  发布在  PHP
关注(0)|答案(7)|浏览(106)

我的问题是在我的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模块加载..我已经通过了所有可用的文件在互联网上..请帮助我解决这个问题..

6yoyoihd

6yoyoihd1#

我在CentOS7上安装的WordPress中有这个问题,解决方案是使用以下命令编辑httpd.conf文件:

sudo vi /etc/httpd/conf/httpd.conf

并更换

<Directory "/var/www/wordpress">
Options Indexes FollowSymLinks
AllowOverride none
Require all granted
</Directory>

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

然后重新启动Apache:

sudo systemctl restart httpd.service
js81xvg6

js81xvg62#

不确定这是不是太晚了。我也面临着同样的问题,通过改变来解决

AllowOverride None

AllowOverride All

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

66bbxpm5

66bbxpm53#

在Ubuntu 22上安装WordPress并为网站配置SSL证书后,我也遇到了同样的挑战,这就是我解决问题的方法。
打开Apache配置文件进行编辑(本例中使用nano)

sudo nano /etc/apache2/apache2.conf

更改以下行:

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

致:

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

打开默认SSL配置文件进行编辑

sudo nano /etc/apache2/sites-available/default-ssl.conf

添加以下代码:

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

重新启动Apache

sudo service apache2 restart

您现在应该能够更改站点的永久链接结构,而不会看到404页面未找到错误。

dluptydi

dluptydi4#

如果您使用的是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服务apache2重新启动

我希望这对你有帮助!

pn9klfpd

pn9klfpd5#

可能是数据库中的rewrite_rules字段损坏。
我安装了“Yoast SEO”到一个活的网站,这完全打破了它。我禁用插件,但它没有回去工作。只有默认的永久链接将工作。
像其他人一样,我试了一些常规的方法--检查.htaccess,确保mod_rewrite在服务器上正常工作,再次保存固定链接设置,但是什么都不起作用。主页会加载,wp-admin页面会加载,但是其他的一切都只是加载“最新帖子”的默认页面。
最后发现是数据库中wp_optionsrewrite_rules字段有问题。
我有三个版本的网站(本地,舞台和生产),都来自一个SVN基地,所以我知道这不是一个文件的问题,但只有本地开发版本的工作。
我用本地开发站点的工作字段替换了损坏的Live站点的rewrite_rules字段的内容,结果成功了。
真正奇怪的是删除rewrite_rules域并让WordPress重建它并没有解决这个问题。只有用网站以前工作版本的内容替换才能解决这个问题。
我仍然对此感到困惑,如果我发现任何进一步的问题,我会编辑这个回复。

sqougxex

sqougxex6#

我遇到了完全相同的问题,并通过运行

sudo a2enmod rewrite

然后重新启动了apache。显然这个问题是由mod_rewrite可能在ubuntu上不能正常工作引起的。
我找到了解决方案here

lqfhib0f

lqfhib0f7#

我也遇到了同样的问题。在SSL上有一个站点必须更改的不是000-default.conf,而是相应的SSL conf文件。添加
文档根目录/var/www/html之后

the following

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

然后重新启动Apache 2保存了我的网站...其他都不起作用。问题是WordPress SSL和SEO插件弄乱了配置文件。

相关问题