因此,我希望将所有通过表单提交或通过AJAX发出的POST请求重定向到位于根目录外部的一个文件(例如postManager.php
),如下所示:
_post
| ---postManager.php
|
public_html // root directory
| ---file_one.php
| ---file_two.php
例如,请求可能从file_one.php
到$.post("file_two.php");
,并且要求将所有postManager.php
数据一起转到$_POST
,因此它可以被处理。考虑到它是共享托管,我只能访问.htaccess
,并且我想从这里进行访问。
到目前为止,我已经尝试过这样的事情:
RewriteEngine on
RewriteCond %{SERVER_PORT} !443
RewriteCond %{REQUEST_METHOD} POST
RewriteRule ^(.*)$ http://%{HTTP_HOST}/..? <-- and that's where I'm lost
将感谢您提供任何帮助,并提供清晰的解释!
答案 0 :(得分:1)
...实际上,经过多次尝试后,我最终得到了该代码解决方案:
所以,这是我的帖子ajax,它是由任何项目文件夹中的任何文件直接指向根文件夹制成的:
$.post( "/" , { variable : "myVar" } );
在这种情况下,它转到mydomain.com
,但实际上却没有,因为它被.htaccess重定向捕获到一半,如下所示:
RewriteEngine on
RewriteCond %{REQUEST_METHOD} POST
RewriteRule ^(.*)$ postManager.php [QSA,L=307]
postManager.php:
print_r($_POST);
如果我通过.done(function(data){console.log(data)});
请求答复,它就会给我:
Array ( [variable] => Myvar )
是否有人对此代码有任何其他建议或评论,因为我不确定它是否正确和安全,以及它是否完全按照我所描述的方式工作。 预先感谢!
答案 1 :(得分:0)
您的Ajax请求应指向postManager.php
的位置。您无需为此修改.htaccess
文件。
示例:
$.ajax({
url : 'post/postManager.php',
type : 'POST',
data : {},
dataType: 'json',
success : function(data) {}
});
我希望有帮助。