我使用以下代码将所有页面从.php更改为简单/
RewriteRule ^(.*)/$ $1.php [L]
现在请访问www.site.com/clubs/或www.site.com/training/,而不是www.site.com/clubs.php和www.site.com/training.php
现在我想在俱乐部内展示俱乐部(使用数据库中的数据),页面将显示为www.site.com/clubs/my-club/
所有我的俱乐部数据都将在数据库中,包括网址字段中的链接。
我可以使用以下代码获取此信息。然而,当我使用$ _GET ['club']方法回应时,它显示的是my-club.php,而不仅仅是我的俱乐部。
RewriteRule ^clubs/([^/]*)$ clubs.php?url=$1 [L]
url中的结尾/似乎变为.php
答案 0 :(得分:2)
您可以通过不同的方式实现您的需求,但这就是我的方式。 更改规则顺序,如下所示:
RewriteRule ^clubs/([^/]*)/$ clubs.php?url=$1 [L]
RewriteRule ^(.*)/$ $1.php [L]
我将尾部斜杠添加到第一个规则,因为我猜这是模式的一部分。如果我错了,你可以删除它。
如果您要附加原始请求网址中的任何查询字符串,则应将QSA
与L
一起使用,因此[L,QSA]
答案 1 :(得分:0)
我过去曾经使用过这个并且工作正常。
RewriteRule ^clubs/(.*)/$ clubs.php?club_name=$1 [L,B]
其中$ _GET ['club_name'] =“my_club”,你的网址看起来像
http://www.site.com/clubs/my_club/
答案 2 :(得分:0)
试试这个:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9a-zA-Z\-]+?)/([0-9a-zA-Z\-]+?)?$ $1.php?url=$2
你跑了吗?
http://localhost/club/
结果将是
http://localhost/club.php
你跑了吗?
http://localhost/club/my-club
结果将是
http://localhost/club.php?url=my-club