影响 AJAX 联系表单上的验证码验证的 Htaccess 重写条件


Htaccess Rewrite condition influencing CAPTCHA verification on AJAX contact form

我正在使用一个简单的php AJAX表单,它运行良好。最近,为了使我的URL对搜索引擎更友好,我使用.htaccess文件删除了.php扩展名,现在CAPTCHA验证的形式永远不会验证。

你知道可能出了什么问题吗?

该表单是jigowatt的HTML5 AJAX联系表单。这是删除我正在使用的扩展php的htaccess代码行:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}'s/(.+)'.php[^'s]* [NC]
RewriteRule ^ /%1 [R=301,NE,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_URI}.php [QSA,NC,L]

我想知道是否有解决方法。我尝试将联系表单网址保留为.php扩展名,但没有成功,但它不起作用。

谢谢

您可以尝试替换这些行:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}'s/(.+)'.php[^'s]* [NC]
RewriteRule ^ /%1 [R=301,NE,L]

RewriteCond %{THE_REQUEST} ^(GET|HEAD)'s/(.+)'.php[^'s]* [NC]
RewriteRule ^ /%2 [R=301,NE,L]

因此,POST 请求(假设这就是 AJAX 调用的工作方式)不会被重定向。