我想使用.htaccess从网址中删除问号&.php扩展名

我在.htaccess中重定向网址有问题.我想删除.PHP&来自URL的问号.

例如:www.example.com/test.PHP?id = 12到www.example.com/test/12需要这样的格式.

我尝试在.htaccess中使用此代码

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

## don't touch /forum URIs
RewriteRule ^forums/ - [L,NC]

## hide .PHP extension snippet

# To externally redirect /dir/foo.PHP to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.PHP [NC]
RewriteRule ^ %1 [R,L]

# To internally forward /dir/foo to /dir/foo.PHP
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.PHP -f
RewriteRule ^(.*?)/?$$1.PHP [L]

代码只是从URL中删除.PHP扩展名.还需要删除问号.

解决方法:

代码似乎来自我的一个答案:)

用以下代码替换您的代码

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

## don't touch /forum URIs
RewriteRule ^forums/ - [L,NC]

## hide .PHP extension snippet

# To externally redirect /dir/foo.PHP?id=123 to /dir/foo
RewriteCond %{THE_REQUEST} ^GET\s([^.]+)\.PHP\?id=([^&\s]+) [NC]
RewriteRule ^ %1/%2? [R,L]

# To internally forward /dir/foo/12 to /dir/foo.PHP?id=12
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.PHP -f
RewriteRule ^(.+?)/([^/]+)/?$$1.PHP?id=$2 [L,QSA]

# To externally redirect /dir/foo.PHP to /dir/foo
RewriteCond %{THE_REQUEST} ^GET\s([^.]+)\.PHP\s [NC]
RewriteRule ^ %1 [R,L]

# To internally forward /dir/foo to /dir/foo.PHP
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.PHP -f
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*?)/?$$1.PHP [L]

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...