How To Remove index.php From Permalink In WordPress

After a successful migration of your WordPress site to another server, the first thing you would like to do is enter Permalinks settings and remove index.php from permalink in WordPress. Having index.php in permalink often can lead to 404 missing page error and it disrupts User-Friendly URLs. 

Since you probably imported the database, there’s a good chance that you are going to see ‘index.php’ already create itself into your URL structure. If you want to remove index.php from the permalink you can check the below methods.

Why to Remove index.php From Permalink?

Index.php is not considered a user-friendly URL and it may lead you to a 404 error. Besides, there is no benefit to keeping index.php in the URL, except trouble. If you are a blogger and write articles, then you might target long-tail keywords. Keeping index.php in the URL makes it too long. 

Therefore it is wise to remove index.php from the permalink.

Remove index.php From URL WordPress

Here, we are going to show you two different methods. First, try method one, most of the time this method solves the problem. If it doesn’t work try method two. Let’s see.

The most common reason for index.php appearing is improper permalink structure. Therefore first check if the structure is set properly. 

To check it, navigate to Settings -> Permalinks

8vesYVos CjmHP2brMuEyWYMyGUYq5DgBAxXAJSjPh1MEoN9vHKsOA1EtDF Yu5 EwwcUEy4ySQSXEm0jX839SN2ne5uuP38zErJTMXuOa9s5bDodvX1G9u3Rz3HeP8u0XPZd20QF5V4vTK8wSqA1aE

Now check if the permalink structure is set to ‘Post name’. If not then change it to post name and check if the index.php is removed. If not, then you have to try the second method. 

Method 2: Adding code to .htaccess file to remove index.php

If method one doesn’t work this surely will. Everything is described step by step, make sure you don’t miss anything.

Step 1: Make Sure ‘mod_rewrite’ is enabled on your server

At first, you log in to your hosting site and make sure your ‘mod_rewrite’ is enabled. If this module is active on your server, you will be able to create an info file and check for yourself. 

In cPanel, Mod_Rewrite is compiled with Apache by default. E.g.

 root@server [~]# httpd -l|grep rewrite
  mod_rewrite.c

If you want to check whether mod_rewrite is enabled on the server, open your website root directory. Now create a PHP file named mod_rewrite.php

image 1

Add the following code to this file.

<?php echo "Mod_rewrite is activated!"; ?>
image 2

Afterward, create a .htaccess file and rename the original .htaccess file to .htaccess_1 if you have it.

image 3

Now add the following code to the .htaccess file.

RewriteEngine On
RewriteRule ^.*$ mod_rewrite.php
image 4

Enter your website. If you see a message such as ‘Mod_rewrite is activated’, then it is enabled on your server. If you find anything else such as “mod_rewrite is disabled’, make sure to delete the .htaccess file that you created earlier and rename the original file to ‘.htaccess’.

image 5

Step 2: Set the Permalink Structure

Now navigate to Dashboard -> Settings -> Permalinks, then choose the ‘Custom Structure’ option and enter /%postname%. Then click on save changes. 

image

Step 3: Edit .htaccess file

Now open ‘File Manager’ from your hosting site and open the .htaccess file that is located at the root of your website folder(I am using cPanel). 

2rZMpoBlZ8ab4hel40 ZlpKuAoAwwYX93YfTPBgR7uEbt6tyfF22mPoGpdLhw8g

Now copy the following code and paste it on your .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

This will be enough to remove index.php from the permalink in the WordPress site. 

Additional Known Issues That Might Occur

Sometimes steps described above won’t give you any results. On some servers with high security, it may appear that ‘the mod_security is blocking your settings’ thus the index.php remains on your URL structure.

To solve this try adding the below piece of code in your .htaccess file. 

<IfModule mod_security.c>
SecFilterEngine Off
</IfModule>

Last Words

One more thing, check for a config file for Apache which may also override your .htaccess directives. Look for Ubuntu default /etc/apache2/apache2.conf file and change the entry for / and /var/www from AllowOverride None to AllowOverride All. Afterward, restart the apache server and hopefully, it will solve this issue as well. 

You may also want to know How to edit and change post/page URL in WordPress. It’s a post that describes the ways to change or edit post/page URL easily.

Let me know after removing index.php from your permalink. If you face any other issues ask me I will be happy to help and don’t forget to share this post. 

About Z Square Studio

At Z Square Studio, we are not just a design and marketing studio; we are a team of passionate creatives dedicated to delivering excellence in every project we undertake. Our journey is fueled by the desire to transform ideas into visual masterpieces, captivating digital experiences, and effective marketing strategies. With a firm belief that excellence is not just a goal, but a standard, we redefine the realms of graphic design, web design, and digital marketing.

Graphic Design: Elevating Visual Communication

Our graphic design services go beyond aesthetics. We understand that design is a powerful language that speaks to your audience on a profound level. From brand identity to promotional materials, we craft visuals that resonate with your brand’s essence. Our commitment to excellence drives us to meticulously create designs that are not only visually appealing but also convey messages with impact. With a blend of creativity and strategic thinking, we transform concepts into designs that leave a lasting impression.

Web Design and Development: Crafting Digital Experiences

In the digital age, your website is often the first point of contact with your audience. Our web design services are centered around creating user-centric experiences that seamlessly blend aesthetics with functionality. Excellence in web design means striking the perfect balance between captivating visuals, intuitive navigation, and responsive performance. Whether it’s a sleek portfolio, an e-commerce platform, or a corporate website, we infuse excellence into every pixel to ensure your online presence leaves an indelible mark.

Digital Marketing: Strategies That Shine

Digital marketing is more than just boosting visibility; it’s about creating connections. Our digital marketing services are driven by a commitment to excellence in strategy and execution. We develop tailored campaigns that not only drive traffic but also engage and convert. From SEO and social media marketing to content creation and analytics, our approach is rooted in staying ahead of the digital curve. We believe that excellence in digital marketing lies in the ability to adapt, innovate, and consistently deliver results.

Where Excellence Is the Cornerstone

At Z Square Studio, excellence is not an option – it’s a cornerstone of everything we do. Our passion for design, web development, and digital marketing is matched only by our dedication to exceeding expectations. Every project we undertake is a canvas for us to showcase our commitment to excellence, pushing boundaries and crafting solutions that stand out in a crowded digital landscape. When you partner with Z Square Studio, you’re not just getting services; you’re getting a promise of excellence that goes beyond the ordinary, turning your vision into a reality that resonates and engages.