.htaccess规则调整:含Authority参数的URL禁止跳转至首页
解决.htaccess中支付回调URL被跳转到首页的问题
我看过你给出的.htaccess规则和遇到的问题了——支付回调的/item/?Authority=xxx URL被错误跳转到首页,这是因为当前规则没有覆盖这种带参数的/item/请求,导致它触发了后续的首页跳转逻辑。
下面是修改后的完整.htaccess规则,我会在后面解释关键修改点:
RewriteEngine on # www转非www,保留原规则 RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$ RewriteCond %{HTTP_HOST} ^www\.domain\.ir [NC] RewriteRule ^(.*)$ http://domain.ir/$1 [L,R=301] DirectoryIndex index.php # 真实文件/链接直接放行,保留原规则 RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -l RewriteRule ^ - [L] # 处理正常的/item/{id}/{title}请求,保留原规则 RewriteRule ^item/([a-zA-Z0-9_-]+)/?([^/]+)$ item.php?id=$1&title=$2 [NC,L] # 新增:处理带Authority参数的支付回调请求 RewriteCond %{QUERY_STRING} Authority= [NC] RewriteRule ^item/?$ item.php [L] # 你的其他规则(比如首页跳转等)放在这里 ... ErrorDocument 404 /404.php
关键修改说明:
- 新增的
RewriteCond %{QUERY_STRING} Authority= [NC]用来检测URL的查询参数里是否包含Authority=(不区分大小写)。 - 对应的
RewriteRule ^item/?$ item.php [L]会匹配/item或/item/路径,直接将请求转发到item.php,并且[L]标记会终止后续规则的执行,避免触发首页跳转。 - 一定要把这个新增规则放在原有item路径规则之后、首页跳转规则之前,这样才能优先处理回调请求。
这样修改后,支付回调的URL就能正确被item.php处理,不会再被跳转到首页了。
内容的提问来源于stack exchange,提问作者hamidso
相关产品推荐
相关产品推荐

