簡體   English   中英

如何通過.htaccess重定向所有POST請求?

[英]How to redirect all POST requests via .htaccess?

因此,我希望將所有通過表單提交或通過AJAX進行的POST請求重定向到位於根目錄之外的單個文件(例如postManager.php ),如下所示:

_post
| ---postManager.php
|
public_html // root directory
| ---file_one.php
| ---file_two.php

該請求可能通過$.post("file_two.php");來自file_one.php $.post("file_two.php"); 例如,它需要使用所有$_POST數據直接轉到postManager.php以便可以處理它。 考慮到它是共享主機,我只能訪問.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)});響應.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) {}
});

希望對您有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM