同域名.htaccess内部重定向:地址栏保留请求URL问题排查
解决.htaccess内部重定向404问题
你的问题核心出在RewriteRule的匹配模式写法上——在.htaccess文件里,规则的匹配路径是相对网站根目录的,开头不能加/,而且你原请求URL末尾带有/,但你的规则没覆盖这个场景,导致规则完全没触发,服务器自然返回404。
下面是修正后的完整规则,直接添加到你的.htaccess文件中(如果文件里还没开启重写引擎,记得先加上RewriteEngine On):
RewriteEngine On # 匹配带/或不带/的请求路径,内部转发到目标URL RewriteRule ^iaz-marketplace/account/login/?$ /csmarketplace/account/login/ [L]
关键细节解释:
- 去掉模式开头的
/:.htaccess中的RewriteRule默认匹配的是「去掉域名和开头/的请求路径」,比如你请求的https://indianartzone.com/iaz-marketplace/account/login/,实际参与匹配的部分是iaz-marketplace/account/login/ - 加上
/?:让规则同时兼容末尾带/和不带/的请求,覆盖用户可能的两种访问方式 [L]标记:表示这是最后一条要处理的规则,避免后续其他重写规则干扰这次内部转发
可选优化(更严谨)
如果要确保规则只针对indianartzone.com生效,避免其他关联域名误触发,可以加上域名限定条件:
RewriteEngine On RewriteCond %{HTTP_HOST} ^indianartzone\.com$ RewriteRule ^iaz-marketplace/account/login/?$ /csmarketplace/account/login/ [L]
最后别忘了确认目标路径/csmarketplace/account/login/本身是可以正常访问的(直接输入这个URL能打开页面),不然即使转发成功还是会返回404。
内容的提问来源于stack exchange,提问作者Joshi
相关产品推荐
相关产品推荐

