来自DB的漂亮URL

时间:2011-08-13 19:42:45

标签: php mysql apache

我正在努力从DB创建页面链接,如下例所示。

当前页面:

www.example.com/page.php?pid=7

在数据库中,它在“公司信息”类别下保存为标题“contact-us”

我希望它像:

www.example.com/company-info/contact-us.html

我尝试了不同的解决方案和答案,但没有运气。我不确定,PHP部分将在哪里以及为.htaccess文件编写哪些规则。

2 个答案:

答案 0 :(得分:2)

在apache(或.hataccess)中执行以下操作:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /proxy.php?_url=$1 [QSA,L]

简而言之,如果请求的资源不存在,请将其重定向到proxy.php文件。从那里$ _REQUEST ['_ url']将成为用户请求的网址。

然后在您的主目录中创建proxy.php并添加您想要加载正确内容的任何逻辑。

如果您使用.htaccess中的这个,那么您可能需要将RewriteBase /添加到您的配置中。

答案 1 :(得分:0)

如果你想通过url找到这个页面,你可能会通过php和.htaccess这样做。创建一个.htaccess,为每个请求调用page.php。你不需要pid=7,因为,.htaccess应该怎么知道它是7,对吧? :)

在page.php中,您获取原始网址并将其拆分为斜杠,以便获得类别(company-info)和网页本身(contact-us.html)。然后,您可以在数据库中查找这些内容。简而言之,有多少软件可以使用,包括Wikipedia(MediaWiki)和CodeIgnitor。

请注意'company-info'与'Company Info'不同。您必须在数据库中指定url-version才能使用它进行查找。