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

标签 php .htaccess get

这是我现在的 .htaccess 文件。

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

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

Old = domain.com/test.php
New = domain.com/test

糟糕的是,当我使用以下链接发送获取数据时,数据未被传递。我认为 QSA 选项可以做到这一点,这是怎么回事?

domain.com/test?id=1

最佳答案

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

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

关于php - htaccess 删除 .php 并保留查询字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15507132/

相关文章:

web-services - 防止访问主域上子域的文件夹

用户数据 api 的 json 对象格式

c++ - 使用 cin.get() 函数

php - 你能从 PHP 发布数据吗

php - 使用php从网络上的Windows共享文件夹中读取Linux中的目录

php - 在 Laravel 4 中使用命名空间类作为 View Composer?

php - 如何在移动版 Joomla 2.5 中禁用链接 "switch to Desktop version"?

apache - 重定向加载到 http 而不是 https

apache - .htaccess 域从子文件夹打开然后 rewriterule

PHP : $_GET is not retrieving data from MySQL database