Year Month Date Filename
.htaccess PHP
By | Friday, March 9, 2012




Hide Comments http://wcetdesigns.com/tutorials/2012/03/09/y-m-d-filename.html
http://wcetdesigns.com/view.php?dtype=tutorials&year=2012&month=03&date=09&file=y-m-d-filename





.htaccess:
This file must be called .htaccess, which will rewrite view.php with the yyyy/mm/dd/filename.html format.
RewriteEngine On

RewriteRule ^([0-9]{4})/([0-9]+)/([0-9]+)/([a-zA-Z0-9_-]+)\.html$ view.php?y=$1&m=$2&d=$3&filename=$4
MySQL:
CREATE TABLE `titles` (
   `title` VARCHAR ( 50 ) NOT NULL ,
   `filename` VARCHAR ( 25 ) NOT NULL ,
   `date` DATE NOT NULL
) ENGINE = MYISAM;
INSERT INTO titles VALUES ('Two Thousand Twelve, March 9th', 'y-m-d-filename', '2012-03-09');
PHP:
settings.php, file where the important MySQL information is located.
<?php

//CONNECTS TO YOUR DATABASE (MODIFY TO YOUR SETTINGS)
$c mysql_connect("server""username""password");
$db mysql_select_db("your_database"$c);
$table "titles";

?>
view.php, file that will be rewritten in the yyyy/mm/dd/filename.html format.
<?php

include "settings.php"//FILE WITH THE IMPORTANT MySQL SETTINGS

//YEAR, MONTH, DATE, AND THE FILENAME MUST BE PRESENT IN ORDER TO WORK
if($_GET["y"]&&$_GET["m"]&&$_GET["d"]&&$_GET["filename"]){
    
$y $_GET["y"];
    
$m $_GET["m"];
    
$d $_GET["d"];
    
$filename $_GET["filename"];
    
    
//URL OF THE PAGE AND THE PATTERN FOR THE yyyy/mm/dd/filename.html FORMAT
    
$uri $_SERVER["REQUEST_URI"];
    
$uri_format eregi("/([0-9]{4})/([0-9]+)/([0-9]+)/([a-z0-9_-]+)\.html"$uri);
    
    
//IF URL IS IN THE REGULAR FORM, PAGE WILL REDIRECT TO THE REWRITTEN URL
    
if(!$uri_format){
        
header("Location: http://".$_SERVER["HTTP_HOST"]."/".$y."/".$m."/".$d."/".$filename.".html");
    }
    
    
//SHOWS THE INFORMATION OF THE "FILENAME"
    
$q mysql_query("SELECT * FROM $table WHERE date='$y-$m-$d' AND filename='$filename'");
    
$r mysql_fetch_assoc($q);
    
$title $r["title"];
    
    echo 
$title;
} else {
    
//IF AT LEAST ONE OF THE VARIABLES (YEAR, MONTH, DATE, OR FILENAME) IS MISSING, THE PAGE WILL REDIRECT TO THE DEMO
    
    
header("Location: http://".$_SERVER["HTTP_HOST"]."/2012/03/09/y-m-d-filename.html");
}

?>