1

需要根据页面更改URL。我Title有一个类似的 URL http://yourdomain.com/showBest.html?id=42,我需要在http://yourdomain.com/how-to-feel-cosmic-energy.html此处设置它,因为它是如何感受Title页面的宇宙能量的。所有人都可以说,我需要Title使用从页面连接 Web URl.htaccess

4

2 回答 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.htmlshowBest.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.htmlshowBest.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 回答