要保留$_GET参数的URL重写,您可以使用.htaccess文件来实现。下面是一个示例代码,展示了如何在URL重写时保留$_GET参数:
RewriteEngine On
RewriteBase /
# 检查请求的文件或目录是否存在
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# 将请求重写到index.php,并将查询字符串作为参数传递
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]
在上述示例中,首先打开了RewriteEngine,并设置了基本的重写路径。然后,通过RewriteCond检查请求的文件或目录是否存在。如果不存在,则使用RewriteRule将请求重写到index.php文件,并将查询字符串作为名为"url"的GET参数传递。
在index.php文件中,您可以通过$_GET['url']访问原始的URL路径,并根据需要进行进一步处理。
这样,当用户访问重写后的URL时,原始的$_GET参数将保留。例如,如果用户访问http://example.com/products?page=2,重写后的URL将是http://example.com/index.php?url=products&page=2,并且您可以在index.php文件中通过$_GET['page']访问到"2"的值。
请注意,为了使上述代码生效,您的服务器必须支持URL重写,并且您需要在网站的根目录下创建名为.htaccess的文件,并将代码粘贴进去。