如何使重写工作?

时间:2014-07-28 16:49:35

标签: .htaccess mod-rewrite

我收到了这个网址:host.com/john?result=success

我需要在内部重写为:host.com/?name=john&result=success

试过这个:RewriteRule ^([a-zA-Z0-9]+|)/?$ index.php?name=$1 [QSA]

它只会将其重写为:host.com/?name=john - &result=success在这种情况下会丢失。

据我所知[QSA]也应该保留原始查询字符串,但它会丢失。

在这件事上非常感谢所有帮助。

[编辑]:

这是我的完整htaccess,我只是在此规则之前绕过一个文件夹:

RewriteEngine on
RewriteBase /

RewriteRule ^(admin) - [L]
RewriteRule ^([a-zA-Z0-9]+|)/?$ index.php?name=$1 [QSA]

1 个答案:

答案 0 :(得分:0)

你的正则表达式在这里似乎有问题。

试试这个:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-zA-Z0-9]+)/?$ index.php?name=$1 [L,QSA]