我的.htaccess文件中有以下规则规则
RewriteRule dest/(.*)/item/(.*)/aId/(.*)/tId/(.*)/? rss.php?dest=$1&item=$2&aId=$3&bId=$4 [NC,L]
这会产生以下URL http://domain.com/dest/NYC/item/coke/aId/1234/bId/asdbg
但如果缺少aId和tId,则会抛出404错误: http://domain.com/dest/NYC/item/coke
有人可以帮我找出原因吗?非常感谢
答案 0 :(得分:0)
因为/dest/NYC/item/coke
与正则表达式dest/(.*)/item/(.*)/aId/(.*)/tId/(.*)/?
不匹配,所以干净的SEO友好URL不会被重写为rss.php来处理,我会假设你没有在文档根目录中有一个目录树,看起来像“/ dest / NYC / item / coke”,因此是404.你需要稍微修改规则以适应缺少的参数:
RewriteRule ^dest/(.*)/item/(.*)/aId/(.*)/tId/(.*)/?$ rss.php?dest=$1&item=$2&aId=$3&bId=$4 [NC,L]
RewriteRule ^dest/(.*)/item/(.*)/?$ rss.php?dest=$1&item=$2 [NC,L]
第二条规则将处理干净网址中缺少 aId 和 tId 的情况。