Ich habe diese .htaccess-Datei, die einige Umleitungen und Umschreibungen durchführt (Erweiterungen entfernen usw.), aber wenn ich die Daten mit der POST-Methode sende, gehen sie unterwegs verloren.
Ich habe versucht, diese Bedingung hinzuzufügen, um die Anforderungsumleitung mithilfe von POST-Daten zu verhindern, aber es funktioniert nicht.
Options +FollowSymLinks RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule ^resume-.*/([0-9]+)$ /book.php?id= [QSA,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule ^channel-books/([0-9]+)/([0-9]+)/([0-9]+)$ /getChannelBooks.php?idChaine=&page=&orderby= [QSA,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule ^channel-books/([0-9]+)/([a-zA-Z]+)$ /getChannelBooks.php?idChaine=& [QSA,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule ^chaine-.*/([0-9]+)$ /model_contenu_de_chaine.php?idChaine= [QSA,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule ^search-([0-9]+)$ /search_page.php?search= [QSA] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule ^audio-([0-9]+)$ /audiobook.php?id= [QSA] RewriteRule ^$ /index.php [NC] RewriteCond %{REQUEST_METHOD} !POST RewriteCond %{THE_REQUEST} \s/([^.]+)\.php [NC] RewriteRule ^ /%1 [NE,L,R=307] RewriteRule ^([^\.]+)$ .php [NC]
So sieht meine Postanfrage aus
Dies ist der Code in meiner destroy_session.php-Datei
if(isset($_POST['action']) && $_POST['action'] == 'logout'){ session_unset("username"); session_destroy(); }
这就是这里的实际问题,这与 URL 重写无关。
如果您发送这样的原始请求,PHP 将不会填充
$_POST
。您需要发送application/x-www-form-urlencoded
或multipart/form-data
。