使用 .htaccess 隐藏获取参数

Hide Get Parameter using .htaccess

这是我的页面

xyz.com?show=page

在我的 index.php 中,代码会像

<?php
echo $_GET['show']
?>

但我希望用户只输入 xyz.com/page,它应该会自动在 url

中附加 ?show

我该怎么做?

我有 .htaccess 喜欢

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ .php [NC,L]

但它只删除页面的最后一部分,即 .php

我该怎么做

如果 index.php 将处理您的所有请求,您需要重写它们 index.php。您现在正在做的是将它们重写为当前请求,并在末尾添加一个 .php

这应该可以满足您的要求:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ /index.php?show= [NC,L]