我是否可以使用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/
答案 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);
}
这种基本技术应该通过一些修补来解决你的问题。