我有一个URL:search/?word=asdf,并希望重定向到:search/word/asdf/并在内部运行:?cmd=搜索&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/electolux/trunk/cmd/search/?关键词=asdf
但它应该是:localhost/bruc/shadbox/electolux/trunk/cmd/search/key-word/asdf-
因此,我将这个正确的URL重定向到:localhost/bruc/ssandbox/electolux/trunk/?cmd=搜索&关键词=asdf
但工作不好!试试,我的方法是:http://htaccess.madewithlove.be/
尝试RewriteRule ^([^/]*)/word/([^/]*)$ /?cmd=$1&word=$2 [L]
。我相信这将实现你的目标。
试试这个:
RewriteEngine on
RewriteRule ^search/word/(.*)$ /?cmd=search&word=$1 [L]
检查此项。
RewriteEngine on
RewriteRule ^([^/]+)/([^/]+)/([^/]+) /?cmd=$1&word=$2 [L]
这有三个部分:
- RewriteRule指定这是一条重写规则(与条件或其他指令相反)。命令是将第2部分重写为第3部分
- 这部分是一个正则表达式,只有当URL与此正则表达式匹配时,才会运行该规则。在这种情况下,它说-寻找字符串的开头,然后是一堆非斜杠字符,然后是斜杠,然后是另一堆非斜线字符。然后是一堆非斜杠字符,然后是一个斜杠,然后是另一堆非斜线字符。括号表示括号内的部分将被存储以供将来参考
- 最后,这一部分说以这种格式重写给定的URL$1美元和2美元是指被捕获和储存的零件