Jump to content

.htaccess


signature16

Recommended Posts

I've been trying to make my URLs friendly, but it never seems to work correctly.

 

This is the code I'm using on my index page:

 

<?php 
$id = $_REQUEST['id'];
if($id == "") {
$id = "index";
}  include "pages/$id.php";  
?>

 

It creates links that look like this:  www.website.com/index.php?id=random-webpage

 

 

How can I convert those links into:  www.website.com/random-webpage.php

 

 

 

 

Link to comment
https://forums.phpfreaks.com/topic/74796-htaccess/
Share on other sites

Always fun.

 

You need some type of filter, but for the most part any request needs to be ported through a processing file.

 

In this file I would do a check to see if the random-webpage.php exists. If it does than you send the user to that page if not, than it is a fake and you split up the file name and pass it to the correct location using the include as you have shown.

 

It is more complicated than explained, but that is the gist of it.

Link to comment
https://forums.phpfreaks.com/topic/74796-htaccess/#findComment-378172
Share on other sites

something like this in .htaccess:

 

RewriteEngine On
RewriteRule ^random-webpage\.php$ /index.php?id=random-webpage [L,NC]

 

or if you will pass through ALL urls, something more like this (neither of these tested):

 

RewriteEngine On
RewriteRule ^(!index\.php)$ /index.php?id=$1 [L,NC]

Link to comment
https://forums.phpfreaks.com/topic/74796-htaccess/#findComment-378178
Share on other sites

and if you want to send real pages to the browser without substitution, put this before all other rewrites:

 

# Don't rewrite real files or directories after this point.
RewriteCond %{SCRIPT_FILENAME} -f [OR]
RewriteCond %{SCRIPT_FILENAME} -d
RewriteRule .* - [L]

 

so i guess this would be the whole thing:

 

RewriteEngine On

# Don't rewrite real files or directories after this point.
RewriteCond %{SCRIPT_FILENAME} -f [OR]
RewriteCond %{SCRIPT_FILENAME} -d
RewriteRule .* - [L]

RewriteRule ^(!index\.php)$ /index.php?id=$1 [L,NC]

Link to comment
https://forums.phpfreaks.com/topic/74796-htaccess/#findComment-378180
Share on other sites

I would post the code I used, but I have customized it so much there is too much to filter. That and I consider it proprietary information due to certain aspects of it.

 

Anyhow a simple google search will provide you with more than enough information.

 

http://www.google.com/search?hl=en&q=php+seo+friendly+url&btnG=Google+Search

 

http://www.sitepoint.com/article/search-engine-friendly-urls

 

http://techie-buzz.com/ask-techie/create-seo-friendly-urls-using-mod-rewrite-and-php-part-1.html

 

 

A few different ways, which is best for you is for you to choose.

 

 

Link to comment
https://forums.phpfreaks.com/topic/74796-htaccess/#findComment-378181
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.