我正在尝试使用$ _GET和.htaccess的组合来创建SEO友好的URL。我们有一个目前正在使用的数据库: url.com/article.php?id=1039(1039是唯一ID)
并且正在尝试将其转换为使用商家的商家名称,因此示例如下: url.com/articles/pizza_place1
为了使用商家名称,我们使用str_replace将url中的任何_替换为空格,以便在DB中搜索/匹配时使用,然后将其反转。
$title = mysql_real_escape_string($_GET[title]);
$title = str_replace("_", " ", $title);
$q = "select title,author,cata,text,time,image from articles WHERE title = '$title'";
$result = mysql_query($q,$conn);
我遇到的问题是关于商家名称何时有&或者撇号,它不会传递完整的变量。
所以如果用它来找'Pizza Place&翅膀',它没有返回适当的变量,因此找不到合适的网址。 url.com/articles/Pizza_Place_&_Wings
.htaccess规则:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^articles/([^/\.]+)/?$ article.php?title=$1 [L]
</IfModule>