Ubuntu – Remove ‘.php’ from url – Nothing works

.htaccessApache2mod-rewritePHPurl

Ubuntu 14.04LTS 32bit

LAMP

I know it's an old question but..

I need it to remove .php anywhere it finds it from the visible url.
It needs to work with /showthread.php?id=XX —> /showthread?id=XX

I can't even get it to work with /page.php –> /page.
I've tried these:

https://stackoverflow.com/questions/4026021/remove-php-extension-with-htaccess

https://stackoverflow.com/questions/1992183/how-to-hide-the-html-extension-with-apache-mod-rewrite

https://stackoverflow.com/questions/15917258/remove-php-from-urls-with-htaccess

https://stackoverflow.com/questions/13832468/how-to-stop-htaccess-loop/13832827#13832827

It just does nothing at all.
While other .htaccess code works fine..

While

<?php 
phpinfo();

Lists mod_rewrite in Loaded Modules

And

<?php
 if(!function_exists('apache_get_modules') ){ phpinfo(); exit; }
 $res = 'Module Unavailable';
 if(in_array('mod_rewrite',apache_get_modules())) 
 $res = 'Module Available';
?>
<html>
<head>
<body>
<p><?php echo apache_get_version(),"</p><p>mod_rewrite $res"; ?></p>
</body>
</html>

Returns Module Available

Tried many more things

# Apache Rewrite Rules
 <IfModule mod_rewrite.c>
  Options +FollowSymLinks
  RewriteEngine On
  RewriteBase /

# Add trailing slash to url
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/|#(.*))$
  RewriteRule ^(.*)$ $1/ [R=301,L]

# Remove .php-extension from url
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME}\.php -f
  RewriteRule ^([^\.]+)/$ $1.php 

# End of Apache Rewrite Rules
 </IfModule>

#

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^([^\.]+)$ $1.php [NC,L]

#

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php

Not even this has any effect whatsoever:

RewriteRule ^page$ page.php [L]

sudo service apache2 restart does not change anything.

Server reboot changes nothing.

I tried clearing other code inside, did not make any change.

I cleared my browser cache 100 times

I'm starting to think that it just hates me. What could possible be causing this??

Best Answer

Make sure your specific site is enabled to allow that:

$sudo vi /etc/apache2/sites-available/000-default.conf

<Directory "/var/www/html">
     AllowOverride All 
</Directory>

$sudo service apache2 restart
Related Question