Reputation: 879
I'm working on a site where all the pages are actually index.php + a 'name' parameter that is analyzed
and loads the appropriate template and content.
the homepage url is:
http://www.some_site.com/?page=homepage
1. i was asked to "change" the homepage url to:
http://www.some_site.com
can i use url rewite and htaccess for that and if so, what should i write there?
working on my local machine, i tried this code (mode rewrite is enabled):
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteRule /index.php /index.php?page=homepage
</IfModule>
i would still need the 'name' parameter to be available to the php code of course, so i can load the template and css files.
2. it would be nice for other pages (not homepage) to be converted from (example)
http://www.some_site.com/?page=products
to:
http://www.some_site.com/products
this is less crucial.
thanx in advance and have a nice day :-)
Upvotes: 0
Views: 2258
Reputation: 11373
The following should be what you're looking for (for your second, less crucial, question). Put it in your .htaccess
-file:
RewriteEngine On
RewriteRule ^/([a-zA-z0-9-_]+)/?$ index.php?page=$1
Upvotes: 1
Reputation: 52372
You don't need a rewrite rule at all. Just change your index.php file to show the homepage when there is no page variable at all.
if (!isset($_GET['page'])) {
$_GET['page'] = 'homepage';
}
For educational purposes, the rewrite rule:
RewriteRule /$ index.php?page=homepage [L]
That is, the URI to match is just the slash (the URI starts after your domain in the URL). The $
means that there should be no characters after the slash.
As for products and such, assuming single words made of only letters:
RewriteRule /([a-zA-Z]+)$ index.php?page=$1 [L]
Upvotes: 3