.htaccess查询字符串重写404

时间:2015-01-03 18:06:26

标签: apache .htaccess mod-rewrite url-rewriting

我有一个htaccess文件应该重写something.com/viewpost/post/5index.php?action=viewpost&post=5之类的内容并且工作正常,但如果url有更多查询,则会出现404错误。

我的.htaccess

RewriteEngine On
RewriteRule ^([a-zA-Z0-9-=_?]+)/?$ index.php?action=$1 
RewriteRule ^([a-zA-Z0-9-=_?]+)/([a-zA-Z0-9-=_?]+)/([a-zA-Z0-9-=_?]+)/?$ index.php?action=$1&$2=$3 #Rewrites urls like /viewpost/post/5
RewriteRule ^([a-zA-Z0-9-=_?]+)/([a-zA-Z0-9-=_?]+)/([a-zA-Z0-9-=_?]+)/([a-zA-Z0-9-=_?]+)/([a-zA-Z0-9-=_?]+)/?$ index.php?action=$1&$2=$3&$4=$5 #rewrites URLs like /viewpost/post/5/mode/lock

我首先想到的问题是,较短的重写是停止较长的重写,但我删除它并得到相同的结果。

我对htaccess很新,所以据我所知,这对我来说是独一无二的,除非其他人使用与我相同的系统。我确实谷歌我的问题,发现没有什么看起来像我自己的。

编辑:我忘了问,如果这是因为/ viewpost / post / 5是有效的,那么继续进行会导致查找目录吗?

更新:现在它突然没有工作了。此外,该网站是cloudflare,这会有问题吗?

1 个答案:

答案 0 :(得分:0)

我想这与FileZilla有关。虽然文件已经存在,但文件没有上传,并且服务器上的文件中有注释和缺少的行。