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:
Remove .php extension with .htaccess
How to hide the .html extension with Apache mod_rewrite
Remove .php from urls with htaccess
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??
Advertisement
Answer
Hope helped.
It’s worked for me.
Options +FollowSymLinks -MultiViews # Turn mod_rewrite on RewriteEngine On RewriteBase / # For LocalHost !.php RewriteCond %{HTTP_HOST} !=localhost RewriteCond %{HTTP_HOST} !=127.0.0.1 RewriteCond %{REMOTE_ADDR} !=127.0.0.1 RewriteCond %{REMOTE_ADDR} !=::1 ## hide .php extension # To externally redirect /dir/foo.php to /dir/foo RewriteCond %{THE_REQUEST} ^[A-Z]{3,}s([^.]+).php [NC] RewriteRule ^ %1 [R=302,L] # To internally forward /dir/foo to /dir/foo.php RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^(.*?)/?$ $1.php [L]