Php htaccess将带有多个查询字符串参数的url重定向到SEO友好url

Php htaccess将带有多个查询字符串参数的url重定向到SEO友好url,php,apache,.htaccess,mod-rewrite,redirect,Php,Apache,.htaccess,Mod Rewrite,Redirect,我已经在StackExchange上爬行了3天,已经接近找到问题的解决方案,但仍然没有找到答案 我使用htaccess重写和重定向URL到SEO友好的URL。我目前的访问权限如下 Options +FollowSymLinks -MultiViews # Turn mod_rewrite on RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-

我已经在StackExchange上爬行了3天,已经接近找到问题的解决方案,但仍然没有找到答案

我使用htaccess重写和重定向URL到SEO友好的URL。我目前的访问权限如下

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [L,QSA]

########################################
#   REMOVE INDEX.PHP FROM THE URL
########################################
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s(.*)/index\.php [NC]
RewriteRule ^ %1 [R=301,L]

##################################################
#   REWRITE QUERY STRING INTO SEO FRIENDLY URL
##################################################
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(?:index\.php)?\?page=([^\s]+)? [NC]
RewriteRule ^ /%1? [R=301,L]
当前我的链接传递1个主参数“?page=somepage”。在我的用户页面上,我的链接不仅传递页面参数,还传递用户id。这一联系如下:

?page=users&id=1
此外,用户可以选择编辑自己的配置文件,因此链接如下:

?page=users&id=1&do=edit
My htaccess正确地处理url的重写和重定向,但仅当{QUERY_STRING}只传递了一个参数时

我使用现有的RewriteCond查找查询字符串中的多个参数,并尝试更改RewriteRule以处理查询字符串中的多个参数。我成功地处理了两个参数,但我原来的规则(一个参数)被打破了

我应该如何编写RewriteCond/RewriteRule来处理带有1个或多个{QUERY_STRING}参数的URL

我希望我的URL来自:

?page=users
?page=users&id=1
?page=users&id=1&do=edit
为此:

/users
/users/1
/users/1/edit

在修改了htaccess文件后,我设法找到了解决问题的方法。这恰恰证明,你所寻找的答案往往是最明显、最容易被忽视的。以下是我更新的、正在工作的htaccess文件

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [L,QSA]

########################################
#   REMOVE INDEX.PHP FROM THE URL
########################################
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s(.*)/index\.php [NC]
RewriteRule ^ %1 [R=301,L]

##################################################
#   RERWITE QUERY STRING INTO SEO FRIENDLY URL
##################################################
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(?:index\.php)?\?page=([^\s]+)? [NC]
RewriteRule ^ /%1? [R=301]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(?:index\.php)?\?page=([^\s]+)&id=([^\s]+)? [NC]
RewriteRule ^ /%1/%2? [R=301]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(?:index\.php)?\?page=([^\s]+)&id=([^\s]+)&do=([^\s]+)? [NC]
RewriteRule ^ /%1/%2/%3? [R=301,L]
虽然这是为了满足我的需要,但我还有另一个问题。。。。有没有办法简化此文件中的htaccess RewriteCond/RewriteRule