我收到了这个网址: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]
答案 0 :(得分:0)
你的正则表达式在这里似乎有问题。
试试这个:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-zA-Z0-9]+)/?$ index.php?name=$1 [L,QSA]