简体   繁体   中英

Wordpress permalinks 404 not found

i want to modify my permalink structure to a /%postname%/ to use Buddypress on a wordpress website server.

After some trial, i experiencing some trouble and even with my search in different forum, i don't know how to solve it.

My .htaccess permission is for the trial 666 so wordpress have to modify this file, but won't (last file modify at my server installation). In the database, the permalinks structure succesfully passed to %postname%.

Now, i have a 404 error in all pages i want to access.

.htaccess file :

# 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

I running Apache, so to force the vars selection, i modified to this in the wp-include/vars.php :

//$is_apache = (strpos($_SERVER['SERVER_SOFTWARE'], 'Apache') !== false || strpos($_SERVER['SERVER_SOFTWARE'], 'LiteSpeed') !== false);
$is_apache = 1;

What i have to do now ?

#

EDIT : I've reinstalled it, retry to do all of this, and same problem... Apache is owner of the file so i really don't understand...

如果您能够访问 wp-admin 面板,那么请尝试将永久链接结构更新为“Plain”,然后检查您是否仍然收到 404 页面错误。

even I had the same issue when I deployed my wordpress site in aws ubuntu machine with apache server we have to add this lines in 000-default.conf if you have deployed your wordpress site in /var/www/html

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

then we have to restart apache server sudo service apache2 restart

Okay, i've solved the question.

The problem, and i haven't specified it in my problem explanation, is i use Virtualhost (i have too a monitoring website in this server so i wanted to separate all the task, logs etc...), and there is a problem with virtualhost and this instruction :

RewriteBase /

In fact, this work in normal apache environnment but not in virtualhost.

So what i had to do is to move my .htaccess content on the vhost conf.d file :

<VirtualHost *:80>
    ServerAdmin nfrbezar@vdbassocies.fr
    ServerName intranet.vdb.local
    ServerAlias intranet
    
    DocumentRoot /var/www/vhosts/intranet/html

    ErrorLog /var/www/vhosts/intranet/logs/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/www/vhosts/intranet/logs/access.log combined

    <Directory "/">
       RewriteEngine On
       AllowOverride None
       Allow from 10.1.1.0/8
       
       <IfModule mod_rewrite.c>
            RewriteEngine On
            RewriteBase /
            RewriteRule ^index\.php$ - [L]
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteRule . /index.php [L]
        </IfModule>

    </Directory>

</VirtualHost>

And by this way, it now work !

在此处输入图片说明

Sorry for not telling you that it was a virtualhost, i doesn't think it was important for the problem resolution, even if i supposed it was an apache problem.

According to the Wordpress permission of.htaccess should be 604. Apply this permission and check it.

600 -rw-------  /home/user/wp-config.php
604 -rw----r--  /home/user/cgi-bin/.htaccess
600 -rw-------  /home/user/cgi-bin/php.ini
711 -rwx--x--x  /home/user/cgi-bin/php.cgi
100 ---x------  /home/user/cgi-bin/php5.cgi

还要确保具有必要权限的 .htaccess 位于 /var/www/html 中,即使 wordpress 安装位于不同的文件夹中

In my case it was the cache (Redis used as object cache). After changing the permalink settings, the new URLs were used by WordPress but all resulted in a HTTP 404 Not Found error. Flushing the cache (eg using the WP CLI, wp @production cache flush ) fixed the issue.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM