php 格式化地址栏参数,php – 使用mod_rewrite格式化URL参数

首先让我告诉你我的.htaccess文件代码如下

RewriteEngine On

RewriteBase /site/public/admin/

## 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]

# add a trailing slash

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_URI} !/$

RewriteRule . %{REQUEST_URI}/ [L,R=301]

# To internally forward /dir/foo to /dir/foo.php

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME}.php -f

RewriteRule ^(.*?)/?$$1.php [L]

上面的代码工作正常,但我想添加到这个是当我键入以下URL

http://localhost/site/public/admin/AccidentDetails/?caseid=12

它应该改为以下

http://localhost/site/public/admin/AccidentDetails/caseid/12/

不擅长模式重写我想对此有你的意见,请帮忙.

解决方法:

你可以使用这个.htaccess:

RewriteEngine On

RewriteBase /site/public/admin/

RewriteCond %{THE_REQUEST} \s([^.]+?)(?:\.php)?\?caseid=([^&\s]+) [NC]

RewriteRule ^ %1/caseid/%2/? [R=302,L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^([^/]+)/caseid/([^/]+)/?$$1.php?caseid=$2 [L,NC,QSA]

## 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=302,L]

# add a trailing slash

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule [^/]$%{REQUEST_URI}/ [L,R=301]

# To internally forward /dir/foo to /dir/foo.php

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME}.php -f

RewriteRule ^(.+?)/?$$1.php [L]

标签:htaccess,php,apache,mod-rewrite,webserver

来源: https://codeday.me/bug/20190830/1769384.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值