Report this

What is the reason for this report?

How can I fix my Wordpress Permalinks?

Posted on February 20, 2015

One of my droplets got compromised and for some reason I cannot get permalinks working on the new droplet. I copied over all code and Apache settings, turned the permalinks off and back on in the WP admin, but the permalinks will not work.

I’ve tried everything I can think of. What do I need to do to get them working again? Thanks.



This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Hello Please see my site حرف اخر I use WordPress. Currently, I set the links as %category% / %post%

There is no problem posting content as site.com/category/subcategory/post But when site.com/category/post is written, a redirection operation must be done, but the subject is also visible on this page. And this problem causes the problem of Google’s duplicate content What is your suggestion? Please help me

This is way frustrating. I hope someone can help me out with this. When I click on a permalink the pages fail to load and I get this error from Chrome’s console: {“@context”:“http://schema.org”,“@type”:“WebSite”,“url”:“http://lineangel.com/”,“name”:“LineAngel”}

I tried this https://randomwordpresstips.wordpress.com/2013/05/10/enabling-permalinks-on-wordpress-install-ubuntu-12-10/ with no luck.

a2enmod rewrite is enabled .htaccess file is set to “chmod 666″

My .htaccess file is:

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

My apache2.conf file is:

ServerRoot “/etc/apache2” Mutex file:${APACHE_LOCK_DIR} default PidFile ${APACHE_PID_FILE} Timeout 300 KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 5 User ${APACHE_RUN_USER} Group ${APACHE_RUN_GROUP} HostnameLookups Off ErrorLog ${APACHE_LOG_DIR}/error.log LogLevel crit IncludeOptional mods-enabled/.load IncludeOptional mods-enabled/.conf Include ports.conf

<Directory /> Options FollowSymLinks AllowOverride all <Limit PUT DELETE CONNECT OPTIONS PATCH PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK> deny from all </Limit> </Directory>

<Directory /var/www> Options FollowSymLinks AllowOverride FileInfo </Directory>

<Directory /usr/share> AllowOverride all Require all granted </Directory>

AccessFileName .htaccess

<FilesMatch “^.ht”> Require all denied </FilesMatch>

AccessFileName .htaccess

<FilesMatch “^.ht”> Require all denied </FilesMatch>

LogFormat “%v:%p %h %l %u %t "%r" %>s %O "%{Referer}i" "%{User-Agent}i"” vhost_combined LogFormat “%h %l %u %t "%r" %>s %O "%{Referer}i" "%{User-Agent}i"” combined LogFormat “%h %l %u %t "%r" %>s %O” common LogFormat “%{Referer}i -> %U” referer LogFormat “%{User-agent}i” agent

IncludeOptional conf-enabled/.conf IncludeOptional sites-enabled/.conf

<DirectoryMatch ^.*/wp-content/uploads/> AllowOverride all php_flag engine off php_admin_value engine Off </DirectoryMatch>

<DirectoryMatch ^.*/wp-content/blogs.dir/> AllowOverride all php_flag engine off php_admin_value engine Off </DirectoryMatch>

#<DirectoryMatch ^.*/wp-admin/>

AuthType Basic

AuthName “Restricted Area”

AuthUserFile /etc/apache2/.htpasswd

Require valid-user

#</DirectoryMatch>

<VirtualHost *:80> ServerAdmin webmaster@lineangel DocumentRoot /var/www Servername localhost ServerAlias lineangel www.lineangel

<Directory /var/www/html/lineangel.com> Options Indexes FollowSymLinks MultiViews AllowOverride all Order allow,deny allow from all </Directory> </VirtualHost>

My 000-default.conf is:

<VirtualHost *:80> # The ServerName directive sets the request scheme, hostname and port that # the server uses to identify itself. This is used when creating # redirection URLs. In the context of virtual hosts, the ServerName # specifies what hostname must appear in the request’s Host: header to # match this virtual host. For the default virtual host (this file) this # value is not decisive as it is used as a last resort host regardless. # However, you must set it for any further virtual host explicitly. #ServerName www.example.com

ServerAdmin webmaster@localhost
DocumentRoot /var/www/html

# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
  <Directory /var/www/html/lineangel.com>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
    Order allow,deny
    allow from all
</Directory>

</VirtualHost>

vim: syntax=apache ts=4 sw=4 sts=4 sr noet

Any help would be greatly appreciated!

I was able to get it working. I guess there was a secondary issue with one of the plugins causing the pages not to load.

The developer cloud

Scale up as you grow — whether you're running one virtual machine or ten thousand.

Get started for free

Sign up and get $200 in credit for your first 60 days with DigitalOcean.*

*This promotional offer applies to new accounts only.