POST verileri iletirken nasıl tüm komut basit. Htaccess dahili yönlendirme yakalamak yapıyor musunuz?

2 Cevap php

Ben sadece tüm istekleri yakalamak ve tüm POST veri bozulmamış ile benim catchall sayfaya onları içten iletmek istediğiniz

Catch all page: http://www.mydomain.com/addons/redirect/catch-all.php

Ben çok kombinasyonları denedim, ama ben catch-all.php daha belirtirseniz benim sunucu dahili yönlendirmek istemiyor

# Internally redirect all pages to "Catch" page
Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) /addons/redirect/catch-all.php [L]

Ayrıca, [L] gerekiyorsa ya da dahili yönlendirmeler için işe yaramaz mı?

Sonra, ne php kod bunu kullanmak, POST verileri kapmak için kullanmak istiyorsunuz, ve nihayet PHP başlangıçta istenen sayfaya yönlendirme sayfası

Would it be done just as normal by using $_POST['variable_name']; or something different? Then, how would I go about calling the originally requested page, so I can tell PHP to header location direct them to that page?

Teşekkürler!

GÜNCELLEME:

Ha hasta, boşver. Durum iş YAPAR. İşte benim kod:

# Internally redirect all pages to "Catch" page
Options +FollowSymLinks
RewriteEngine on

RewriteCond %{REQUEST_URI} !^/robots.txt$ 
RewriteCond %{REQUEST_URI} !\.(gif¦jpe?g¦png¦css¦js¦pdf¦doc¦xml)$

RewriteCond %{REQUEST_URI} !^/addons/redirect/catch-all\.php$
RewriteRule (.*)$ /addons/redirect/catch-all.php?q=$1 [L]

Thanks guys for the inspiration! Now time to get that PHP to work...

2 Cevap

Ben ne var de görüntüler için isteklerini ve. Js dosyaları yönlendirme olacağını düşünüyorum. Ayrıca, header() yönlendirme herhangi bir PHP sadece öyle değil mi, yine sağ RewriteRule içine şaplak istiyorsunuz? Eğer istenen sayfayı çalıştırmadan önce her sayfada işlemek ve istenen sayfaları aslında var bazı kod istiyorsanız, neden sadece tüm sayfaları dahil olan bir başlık dosyasını yok? Sonra başlık dosyası (bunun için () veya dahil) çalıştırmak istediğiniz catch-all kod içerebilir. RewriteRule gerekmez.

L son için, ya da burada dur. Bu iyi.

# Internally redirect all pages to "Catch" page
Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) /addons/redirect/catch-all.php?q=$1 [L]

Bu $ _GET ['q'] olarak özgün yerini saklayacak

Sonra, çıkış değil bir şey için dikkatli olmak, normalde $ _POST eşyalarını Süreç:

header('Location: ' . $_GET['q'],true,302);

302 geçici yönlendirme anlamına gelir.

Test ettik, ama giriş yönlendirmek için benzer bir şey yapamaz.

EDIT: Olduğu gibi Hmm .. Bu bir döngüye neden olur. Eğer zaten bir kullanıcı yönlendirildi olduğunuz zaman bilmek diğer bazı RewriteRule gerekir. Belki append? Q = orijinal url üzerinde yönlendirilir ve başka RewriteRule için bir durak olarak kullanan?

Ben de farkı anlatmak için web kök bir sembolik bağ kullanabilirsiniz varsayalım.

/ Var / www / html / blah geri bağlantılı / var / www / html

sonra yazı yakalamak sonra onun yerine / vesaire tüm kullanıcıları göndermek. Aynı içeriği, iki yol, bir erişilebilir doğrudan, bir tek sizin yakalamak aracılığıyla tüm.