php禁止某个链接,php – 使用htaccess忽略链接的某些部分

我有一个关于htaccess的问题和它的重写.

我有这个代码:

Options +FollowSymLinks

RewriteEngine On

RewriteCond %{SCRIPT_FILENAME} !-d

RewriteCond %{SCRIPT_FILENAME} !-f

RewriteRule ^users/(\d+)*$./profile.php?id=$1

RewriteRule ^threads/(\d+)*$./thread.php?id=$1

RewriteRule ^search/(.*)$./search.php?query=$1

其中example.com/users/123等于example.com/profile.php?id=123.

如果我改变链接:example.com/users/123/John

将htaccess忽略/ John或ID之后的任何额外字符?

事实上,约翰是123 ID的真实姓名,我希望它是.

解决方法:

不,它不会忽略您URL中的额外部分,因为您在此处使用正则表达式中的$(行尾):

^users/(\d+)*$

将您的规则更改为:

RewriteCond %{SCRIPT_FILENAME} !-d [OR]

RewriteCond %{SCRIPT_FILENAME} !-f

RewriteRule ^ - [L]

RewriteRule ^users/(\d+) profile.php?id=$1 [L]

RewriteRule ^threads/(\d+) thread.php?id=$1 [L]

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

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

来源: https://codeday.me/bug/20190825/1719054.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值