我有一个网站,我正在使用MySQL存储和提取数据,有一堆不同目的地的数据(是的,这是一个旅行社网站)我想知道如何设置.htaccess文件来显示搜索引擎友好的网址
例如:http://www.mywebsite.com/flights-result.php?id=10这个网址是一个飞往非洲恩德培的航班的详细信息页面,我希望有像http://www.mywebsite.com/Africa/Entebbe.htm这样的网址
以此类推,还有一件事,我需要为每个页面添加这个?数据每天都在更新,所以有什么简单的方法可以自动写URL吗?
任何帮助我都会非常感谢。
发布于 2012-04-23 23:24:20
我真的不认为你想要实现的与mysql有任何关系。你正在寻找的东西叫做URL重写。有不计其数的文章可以为你指明方向。我不太确定您使用的是哪个web服务器。我猜它就是阿帕奇。Here是Apache的module_rewrite指南。
发布于 2012-04-23 23:31:11
给定原始的URL,并不是所有的信息都可以使用mod_rewrite来完成这项工作。
所以你可以做的是将所有的web请求发送到一个控制器文件,然后从那里解析请求uri并加载正确的页面。
所以在htaccess中,类似于..。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ controller.php [L]然后在controller.php中解析url并加载正确的页面。
您可能更喜欢的另一种选择(如果您对特定的最终URL比较灵活)是让URL以如下形式结束:
http://www.mywebsite.com/flights/10/Africa/Entebbe.htm这可能比实现控制器更简单(尽管我更喜欢用控制器来路由请求)。
所以在htaccess..。
RewriteRule
^/flights/([0-9]{1,10})/([a-zA-Z]+)/([a-zA-Z]+)\.htm$
flights-result.php?id=$1&country=$2&place=$3 [L]然后,在flightsResults.php文件的开头附近,您应该加载id的数据,然后检查提供的"country“和"place”是否正确(以防止人们在此处输入任何内容),如果不正确,则返回4040。
记得把你的应用程序输出的所有链接也改成新的样式。
正如您所提到的,您也可以将所有这些URL硬编码到一个htaccess中,但这并不理想:)
https://stackoverflow.com/questions/10283012
复制相似问题