0

我有以下网址:

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 中包含actionandlistArtist变量?(如果它们不在 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...

Wellbacking-track-search实际上是一个文件,backing-track-search.html而不是一个目录 - 我只是省略了 .html,因为我在.htaccess文件中写入了该规则

4

2 回答 2

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
于 2013-06-23T17:27:12.393 回答
0

当我在文档根目录中的空白 htaccess 文件中使用您的第二条规则$_GET创建 php 脚本时,我看到了所有 3 个变量。/tracks/backing-track-search

这里可能发生的情况是,只需立即/tracks/backing-track-search/something-something运行脚本,因此不会重写任何内容(特别是如果您使用RewriteCond %{REQUEST_FILENAME} !-for之类的条件!-d)。然后脚本的 PATH INFO 以 a 结尾/something-something。您可以尝试将 URL 重命名为不同的名称,例如:

http://mysite.com/tracks/backing-track/TINA-TURNER/search/true

那么你的规则是:

RewriteRule ^tracks/backing-track/([^/]+)/([^/]+)/([^/]+)/?$ /tracks/backing-track-search?artist=$1&action=$2&listArtist=$3 [QSA,L]
于 2013-06-23T17:55:38.897 回答