使用SQL表变量的智能URL

时间:2011-02-04 21:21:31

标签: php sql apache mod-rewrite

我想知道如果可以通过PHP网站中的Apace mod-rewrite生成智能URL,并传递SQL变量的值。

谢谢!

2 个答案:

答案 0 :(得分:1)

这是一个适用于的例子 /Customer/Detail/1234
并将其映射到
/Customer/Detail.php?ID=1234

RewriteEngine on
RewriteRule ^/Customer/Detail/([0-9]+)$  /Customer/Detail.php?ID=$1 

除了自动化这个框架外,您可能还需要考虑一个好的MVC框架。

答案 1 :(得分:1)

当然你可以做到这一点!您需要获得一个与“丑陋”URL相关联的“slugs”表。带有“slug”(索引)和“ugly_url”列的表可能会这样做。

mod_rewrite的:

RewriteEngine on
RewriteRule ^/[a-zA-Z0-9-_]+$ redirect.php?slug=$1

redirect.php:

// You'll need to find out to wich ugly URL this Slug belongs to.
// Connect to your database ...
$slug = mysql_real_escape ( (string)$_GET['slug'] );
if ( empty ( $slug ) )
    die ( 'Page not found.' );

$query = mysql_query ( "SELECT `ugly_url` FROM `slugs` WHERE `slug` = $slug LIMIT 1" );
if ( !$query )
    die ( 'Page not found.' );

$fetch = mysql_fetch_array ( $query );

$ugly_url = $fetch['ugly_url'];
header ( "Location: $ugly_url" );