-2

我有一个 URL:search/?word=asdf 并想重定向到:search/word/asdf/ 并在内部运行:?cmd=search&word=asdf

这样就可以得到 PHP 的 $_GET['cmd'] 和 $_GET['word']。

如何在htaccess中做到这一点?

编辑:

我现在的 .htaccess 是:

RewriteRule search(.*) %{HTTP_REFERER}cmd/search$1
RewriteRule cmd/search/?key-word=(.*) %{HTTP_REFERER}cmd/search/key-word/$1

但这不起作用。新的 URL 是:localhost/bruc/sandbox/electrolux/trunk/cmd/search/?key-word=asdf

但它应该是:localhost/bruc/sandbox/electrolux/trunk/cmd/search/key-word/asdf

所以,我将这个正确的 URL 重定向到:localhost/bruc/sandbox/electrolux/trunk/?cmd=search&key-word=asdf

但不能正常工作!试试,我的方法在这里:http ://htaccess.madewithlove.be/

4

3 回答 3

2

试试RewriteRule ^([^/]*)/word/([^/]*)$ /?cmd=$1&word=$2 [L]。我相信这将实现您的目标。

于 2012-08-30T15:28:24.797 回答
2

试试这个 :

RewriteEngine on
RewriteRule ^search/word/(.*)$ /?cmd=search&word=$1 [L]
于 2012-08-30T15:28:55.087 回答
2

检查这个。

RewriteEngine on
RewriteRule ^([^/]+)/([^/]+)/([^/]+) /?cmd=$1&word=$2 [L]

这包括三个部分:

  1. RewriteRule 指定这是用于重写的规则(与条件或其他指令相反)。命令是将第 2 部分重写为第 3 部分。
  2. 这部分是一个正则表达式,只有当 URL 匹配这个正则表达式时,规则才会运行。在这种情况下,它说 - 查找字符串的开头,然后是一堆非斜线字符,然后是一个斜线,然后是另一束非斜线字符。然后又是一堆非斜线字符,然后是一个斜线,然后是另一束非斜线字符。括号表示括号内的部分将被存储以供将来参考。
  3. 最后,这部分说以这种格式重写给定的 URL。$1 和 $2 是指捕获和存储的部分。
于 2012-08-30T15:34:34.273 回答