mod_rewrite隐藏url字符串的最后一部分

时间:2015-10-25 19:36:15

标签: .htaccess url mod-rewrite

我有以下网址: www.mydomain.com/musician.php?musician=musicianname&id=idnumber

我正在使用mod_rewrite来实现这一目标: www.mydomain.com/musician/musicianname/idnumber

这是我使用的规则:

RewriteRule musician/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)$ /musician.php?$musician=$1&id=$2 [L]

这工作得很好,但我想让这个URL更加用户友好。我想在网址中隐藏“音乐家”和“idnumber”,只有“musicianname”: www.mydomain.com/musicianname /

实现此目的的最佳mod_rewrite规则是什么?

1 个答案:

答案 0 :(得分:0)

  

这工作正常,但我想让这个URL更多用户   友好。我想从网址中隐藏“音乐家”和“idnumber”   并且只有“musicianname”:www.mydomain.com/musicianname /

     

实现此目的的最佳mod_rewrite规则是什么?

这与获得最佳重写规则无关。这根本不难。为了实现您的目标,您首先必须重新构建您的PHP代码。如果从查询字符串中删除idnumber,我认为它不会让它在数据库中查找记录。因此,您必须让代码通过musicianname查找数据。

一旦你这样做,你可以简单地改变你的重写。

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ /musician.php?musician=$1 [L]