htaccess 重写规则:显示页面而不在 url

问题描述

我有一个 PHP 脚本,它可以根据 QUERY_STRING

显示一些图像

示例:

example.com/img.PHP?IMAGE_1

但我希望即使用户访问也能显示相同的结果

example.com/IMAGE_1

我在论坛上尝试过此代码,但它不起作用

RewriteEngine On  # enables url rewriting

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.PHP -f 
RewriteRule ^(.*)$ $1.PHP  

解决方法

就这样吧:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([\w-]+)/?$ img.php?$1 [L,QSA]

此规则匹配 URI 中不能匹配现有文件或目录的任何单词字符或连字符的 1+。如果匹配成功,则使用 img.php 将路径转换为查询字符串。