在不丢失参数值的情况下编写.htaccess


Writing .htaccess without losing the value of my parameters

我需要一些帮助试图写我的。htaccess

我有一个单一的php文件链接到mysql,让我们假设我的网站是:www.mycustomsite.com

我试图避免我的页面打破时,有人键入类似www.mycustomsite.com/personname在那里人名实际上可以是任何东西,我会得到这个值搜索我的数据库

用户可以通过

访问我的网站
  1. 直接输入www.mycustomsite.com
  2. 输入目录www.mycustomsite.com/personname
  3. 有时会像www.mycustomsite.com/personname?id=123&subid=123
  4. www.mycustomsite.com/? id = 123, subid = 123

也就是说如果这是打开www.mycustomsite.com/?id=123&subid=123,我应该能够得到我的值id和subbid如果这样的地方开着www.mycustomsite.com/personname?id=123&subid=123我需要能够得到id, subbid和name = personname

我可以做这样的事情,但它没有传递我的其余参数

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^([^'.]+)$ index.php?name=%{REQUEST_URI} [NC,L]

您将需要一个QSA标志和一个条件来停止对实际文件的重写:

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

QSA (Query String Append)标志保留已有的查询参数,同时添加新的查询参数。