PHP& MySQL网址重写问题

时间:2010-08-24 00:25:57

标签: php mysql

我是否可以使用6中的值?cat来重写网址,并使用PHP&amp ;;检查我的MySQL数据库中的值6类别名称html。 MySQL如果是这样怎么样?

当前网址。

http://localhost/index.php?cat=6&sub1=8&sub2=24&sub3=81

浏览器中显示的新搜索友好URL。

http://localhost/html/basics/forms/select-tag/

2 个答案:

答案 0 :(得分:0)

结帐mod_rewrite

您需要打开.htaccess文件(如果它不存在,创建它)并包含以下行。请注意,RewriteEngine On应该只写一次。

RewriteEngine On # Turn on the rewriting engine 
RewriteRule ^html/basics/forms/select-tag/([0-9]+)/?$ index.php?cat=$1 [NC,L] 

答案 1 :(得分:0)

是。基本上你会想要使用mod_rewrite通过路由器脚本传递整个url。 .htaccess文件应该是这样的:

RewriteEngine On
RewriteBase /    

#if it's an existing directory
RewriteCond %{REQUEST_FILENAME} -d [OR] 
#...or an existing file
RewriteCond %{REQUEST_FILENAME} -f 
#serve it up
RewriteRule ^(.+) - [PT,L] 

#else, direct to index.php
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

然后,在index.php中你可以得到这样的东西:

$request = explode('/', $_GET['url']);

$ request数组中包含所有干净的url段。获得这些值后,您可以连接到数据库,找到url所代表的内容并输出页面。如果找不到,您可以发送带有“找不到页面”消息的404标题。

header('HTTP/1.0 404 Not Found');
echo '<p>Page not found</p>';

这是基本的干净网址技巧。如果url是较早的,凌乱的,你只需添加一些逻辑来检查它,并重定向到正确的干净网址:

if(isset($_GET['cat'])){
    //put some logic here

    header("Location: http://localhost/".$the_clean_url);
}

这种基本技术应该通过一些修补来解决你的问题。