htaccess删除.php并保留查询字符串

use*_*231 4 php .htaccess get

这是我的.htaccess文件.

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.php [NC,L,QSA]
Run Code Online (Sandbox Code Playgroud)

这是因为它在不使用.php扩展名时可以访问我的页面.

Old = domain.com/test.php
New = domain.com/test
Run Code Online (Sandbox Code Playgroud)

不好的是,当我使用以下链接发送数据时,数据不会被传递.我认为QSA选项可以做到这一点,这笔交易是什么?

domain.com/test?id=1
Run Code Online (Sandbox Code Playgroud)

小智 5

匹配整个查询字符串并使用反向引用将其附加到新URL应该可行.

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(.*)$ $1.php?%1 [NC,L,QSA]
Run Code Online (Sandbox Code Playgroud)