需要根据页面更改URL
。我Title
有一个类似的 URL http://yourdomain.com/showBest.html?id=42
,我需要在http://yourdomain.com/how-to-feel-cosmic-energy.html
此处设置它,因为它是如何感受Title
页面的宇宙能量的。所有人都可以说,我需要Title
使用从页面连接 Web URl.htaccess
问问题
198 次
2 回答
0
如果您没有执行此操作的框架,您将不得不编写脚本来获取页面标题并将它们转换为页面 ID(使用数据库中的查找或其他方式),或者使用RewriteMap 创建一个标题-> id 映射。
这不是几个简单的重写规则的问题。
于 2012-08-21T05:43:47.907 回答
0
从http://www.cyberdesignz.com/blog/website-design/url-rewriting-top-5-ways-of-php-url-rewriting/,以下是一种不太理想的编写方式。然而,这需要最少的工作。在您的 .htaccess 中,您使用:
RewriteEngine on
RewriteRule ^([a-zA-Z0-9_-]+)/([0-9]+)\.html$ showBest.html?id=$2
这转换how-to-feel-cosmic-energy/12.html
为showBest.html?id=12
.
而且您不必更改 PHP 代码。简化是因为此规则通过包含页面标题和 id 来作弊。因此,重写规则不必在数据库中查找。
更好的方法是:
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ showBest.html?title=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ showBest.html?title=$1
这转换how-to-feel-cosmic-energy.html
为showBest.html?title=how-to-feel-cosmic-energy
.
但是,使用这种方法,您必须更改您的 PHP。因此,您必须按标题搜索,而不是按 id 搜索记录。
例如。改变
mysql_query("SELECT * FROM pages WHERE id = " + mysql_escape_string($id))
到
mysql_query("SELECT * FROM pages WHERE title = '"
+ mysql_escape_string($title) + "'")
或类似的(取决于您的确切 PHP 代码)。
于 2012-08-21T05:48:42.260 回答