I want to know how to page url without .php extension
for ex here is my website :
http://mywebsite.com/ now from the home page whenever i click on any gallery it will goes to the page gallery.php with querystring of galleryID for ex
http://mywebsite.com/gallery.php?id=29
So instead of this gallery.php?id=29 I want to make the url something related to the page title
http://mywebsite.com/9-WEDDING-GIFT-IDEAS
Thanks in advance
I'd recommend using a PHP framework once you start going down this path, that gives your application/site a structure, and the ability to setup routes (paths) like you're requesting.
I'm a fan of Laravel, this allows you to use http://example.com/index.php/friendly-url/goes-here if you haven't setup Apache (the web server) to remove them.
You can remove the index.php/ part and just have http://example.com/friendly-url/goes-here by using the Apache mod_rewrite which Laravel includes for you. Check out the documentation under Pretty URLs
Hope that helps.
There are two ways you can do this. If you don't have a ton of URLs, you can add them in to your '.htaccess' file manually.
RewriteEngine On
# MANUAL
RewriteRule ^9-WEDDING-GIFT-IDEAS/?$ gallery.php?id=29 [L]
RewriteRule ^MOST-BEAUTIFUL-WEDDING-LOCATIONS/?$ gallery.php?id=30 [L]
# ...
Otherwise, you can have 'gallery.php' handle looking up which article to display based on the title. So if it receives a title of '9-WEDDING-GIFT-IDEAS', then it can look up that title in the database and fetch the article for that title. Here, the article title will be passed as the 'id' parameter to 'gallery.php'.
RewriteEngine On
# PARSING HANDLED IN gallery.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ gallery.php?id=$1 [L]
EDIT:
<?php
// gallery.php
$article_title = $_GET['id'];
// ...
// DO A DB LOOKUP TO GET THE ARTICLE ID WHERE TITLE = '$article_title'
// OR JUST GET THE ARTICLE BASED ON THE TITLE INSTEAD