Apache 使用.htaccess重写带有参数的URI

Apache 使用.htaccess重写带有参数的URI,apache,http,.htaccess,Apache,Http,.htaccess,嗨,我需要知道如何htaccess文件应根据以下情况进行修改 转换此localhost/site1/viewUser?selectedSearchedUsername=user1 指向类似于以下内容的localhost/site1/viewUser/user1 我目前在htaccess中使用下面的代码片段来隐藏php扩展,它工作得很好。但在上面的场景中,在url中隐藏get变量时仍然不走运 RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d

嗨,我需要知道如何htaccess文件应根据以下情况进行修改

转换此localhost/site1/viewUser?selectedSearchedUsername=user1

指向类似于以下内容的localhost/site1/viewUser/user1

我目前在htaccess中使用下面的代码片段来隐藏php扩展,它工作得很好。但在上面的场景中,在url中隐藏get变量时仍然不走运

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php 

thanx..

将此HTTP请求从

http://localhost/site1/viewUser?selectedSearchedUsername=user1

你可以简单地使用

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/site1/viewUser/(.*) /site/viewUser?selectedSearchedUsername=$1 [L]
这里的
[L]
表示这是最后一条规则。您可能会很小心,希望在允许匹配的内容上更加严格。例如,如果用户名只是ascii字母和数字的序列,则可以捕获该序列,或者可以在程序中清理字母。小心别让门开着

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/site1/viewUser/(.*) /site/viewUser?selectedSearchedUsername=$1 [L]