微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我想使用.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]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐