因此,我希望通过表单提交或通过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
将有明确的解释,感谢任何有关此问题的帮助!
...实际上,经过一定次数的尝试,我最终得到了代码解决方案:
所以,这是我的帖子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 )
有没有人对此代码有任何额外的建议或意见,因为我不确定它是否正确和安全,以及它是否与我所描述的方式完全一致..提前感谢!
您的Ajax请求应指向postManager.php
的位置。您无需为此修改.htaccess
文件。
例:
$.ajax({
url : 'post/postManager.php',
type : 'POST',
data : {},
dataType: 'json',
success : function(data) {}
});
我希望有所帮助。