首页 > 解决方案 > 删除获取请求的 url .php 扩展名和参数?

问题描述

我的网址是:

https://example.com/detail.php?id=56&subcat=11

我需要这样:

https://example.com/detail/56/11

使用 .htaccess 文件我无法删除参数名称(id、subcat)和问号(?)。我只删除了 .PHP 扩展名。

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

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

RewriteCond %{THE_REQUEST} \s/+products(?:\.php)?\?id=([0-9]+) [NC]
RewriteRule ^ products/%1? [R,L]

RewriteRule ^products/([0-9]+)/?$ products.php?id=$1 [L,QSA]

## hide .php extension snippet
# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} \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]

谢谢你。

标签: phpapache.htaccess

解决方案


只需将以下内容放入您的 .htaccess 文件中(并确保启用了 mod_rewrite):

RewriteEngine on
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^([^.]+)$ $1.php [NC,L]
RewriteRule ^index.php/([^/]+)/?([^/]*) /index.php?id=$1&subcat=$2 [NC]

推荐阅读