我有以下网址:
http://mysite.com/tracks/backing-track-search?artist=TINA-TURNER&action=search&listArtist=true
我想读的是:
http://mysite.com/tracks/backing-track-search/TINA-TURNER
这就是我正在尝试但只是让我http://mysite.com/tracks/backing-track-search
没有任何GET
变量
RewriteRule ^(tracks)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$ /$1/$2?artist=$3&action=$4&listArtist=$5 [QSA,L]
这是可能的,还是我必须在URL中包含action
和listArtist
变量? (如果它们不在PHP文件中,我可能会标记它们,但这很容易)
我也尝试过,但失败了:
http://mysite.com/tracks/backing-track-search/TINA-TURNER/search/true
编辑我认为可能会有一些混乱,我的错......
在原始网址
中http://mysite.com/tracks/backing-track-search?artist=TINA-TURNER&action=search&listArtist=true
注意
...backing-track-search?artist...
好backing-track-search
实际上是一个文件,backing-track-search.html
不是目录 - 我只是将.html留下来,因为我在.htaccess
文件中写了规则
答案 0 :(得分:1)
如果你在.htaccess中这样做会怎么样?
RewriteRule ^backing-track-search/([^/]+) /tracks/backing-track-search.html?artist=$1&action=search&listArtist=true&%{QUERY_STRING} [L]
然后使用
http://mysite.com/backing-track-search/TINA-TURNER
答案 1 :(得分:0)
当我在$_GET
中创建一个php脚本时,我在/tracks/backing-track-search
中看到所有3个变量,在我的文档根目录中的空白htaccess文件中使用第二个规则。
这里可能会发生的是,只需转到/tracks/backing-track-search/something-something
即可立即运行脚本,因此不会重写任何内容(特别是如果您使用RewriteCond %{REQUEST_FILENAME} !-f
或{{1}等条件}})。然后脚本的PATH INFO最终以!-d
结尾。您可以尝试将网址重命名为不同的内容,例如:
/something-something
然后你的规则是:
http://mysite.com/tracks/backing-track/TINA-TURNER/search/true