首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态网页的htaccess

动态网页的htaccess
EN

Stack Overflow用户
提问于 2012-04-23 23:00:18
回答 2查看 519关注 0票数 0

我有一个网站,我正在使用MySQL存储和提取数据,有一堆不同目的地的数据(是的,这是一个旅行社网站)我想知道如何设置.htaccess文件来显示搜索引擎友好的网址

例如:http://www.mywebsite.com/flights-result.php?id=10这个网址是一个飞往非洲恩德培的航班的详细信息页面,我希望有像http://www.mywebsite.com/Africa/Entebbe.htm这样的网址

以此类推,还有一件事,我需要为每个页面添加这个?数据每天都在更新,所以有什么简单的方法可以自动写URL吗?

任何帮助我都会非常感谢。

EN

回答 2

Stack Overflow用户

发布于 2012-04-23 23:24:20

我真的不认为你想要实现的与mysql有任何关系。你正在寻找的东西叫做URL重写。有不计其数的文章可以为你指明方向。我不太确定您使用的是哪个web服务器。我猜它就是阿帕奇。Here是Apache的module_rewrite指南。

票数 2
EN

Stack Overflow用户

发布于 2012-04-23 23:31:11

给定原始的URL,并不是所有的信息都可以使用mod_rewrite来完成这项工作。

所以你可以做的是将所有的web请求发送到一个控制器文件,然后从那里解析请求uri并加载正确的页面。

所以在htaccess中,类似于..。

代码语言:javascript
复制
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ controller.php [L]

然后在controller.php中解析url并加载正确的页面。

您可能更喜欢的另一种选择(如果您对特定的最终URL比较灵活)是让URL以如下形式结束:

代码语言:javascript
复制
http://www.mywebsite.com/flights/10/Africa/Entebbe.htm

这可能比实现控制器更简单(尽管我更喜欢用控制器来路由请求)。

所以在htaccess..。

代码语言:javascript
复制
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中,但这并不理想:)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10283012

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档