使用GET变量将URL重定向到具有GET变量的站点

时间:2016-06-01 14:42:47

标签: .htaccess mod-rewrite url-rewriting

我想重定向,例如:

index.php?name=sarah 

names/sarah.php

文件夹结构:

  • 名/...
  • 的index.php

我试过了:

RewriteRule index.php?name=$1 /names/$1.php

和其他人,但没有找到解决方案。

这可能吗?如果是这样,你怎么能这样做?

注意

另一种方式是

RewriteRule ^names/([^/]*)\.php$ index.php?q=$1 [QSA,L]

工作正常。

2 个答案:

答案 0 :(得分:1)

这是你的规则:

RewriteCond %{QUERY_STRING} name=([^&]*)
RewriteRule ^.*$ /names/%1.php?

答案 1 :(得分:1)

第一个例子不会工作,因为你试图使用RewriteRule操纵查询字符串,但这是不允许的。您可以尝试以下方法:

RewriteEngine on
RewriteCond %{THE_REQUEST} / index\.php\?q=([^\s]+) [NC]
RewriteRule ^ /names/%1.php? [L,R]
RewriteRule ^names/([^/]*)\.php$ index.php?q=$1 [QSA,L]