2016-04-10 18 views
1
Alakalı Apache sanal konak yapılandırmasında aşağıdaki adres

: BuradaBu mod_rewrite günlük dosyası girdileri nasıl anlaşılır?

<Directory "/var/www/html/path"> 
    RewriteEngine on 
    RewriteBase/
    RewriteRule ^go\.html$ /out/qs.html?name=value 
</Directory> 

qs.html dosyasının içeriği:

ben için sunucuya bir http isteği göndermek
<html> 
<head><title>Query String</title></head> 
<body> 
    <h2>Query String</h2> 
    <script> 
    document.write("<p>Query String: " + window.location.search.substring(1) + "</p>"); 
    </script> 
</body> 
</html> 

/path/go.html (herhangi bir ekli sorgu dizesi olmadan), belge döndürülür, ancak qs.html belgesinin oluşturulmasında hiçbir sorgu dizesi görülmez. "Name = value" sorgu dizesini görmeyi beklerdim. Aslında

1. [perdir /var/www/html/path/] strip per-dir prefix: /var/www/html/path/go.html -> go.html 
2. [perdir /var/www/html/path/] applying pattern '^go\\.html$' to uri 'go.html' 
3. [perdir /var/www/html/path/] rewrite 'go.html' -> '/out/qs.html?name=value' 
4. split uri=/out/qs.html?name=value -> uri=/out/qs.html, args=name=value 
5. [perdir /var/www/html/path/] trying to replace prefix /var/www/html/path/ with/
6. [perdir /var/www/html/path/] internal redirect with /out/qs.html [INTERNAL REDIRECT] 

hattı 1 3 aracılığıyla sadece orada durursa olan hemen hemen ne beklenir ve ben düşünüyorum: Burada

eklendi kabartmak çıkarılıp hat numaraları ile kayıt dosyasına ilgili hatları Anlardım. Anlamadığım şey, neden bu noktadan devam ettiği ve kalan 3 hattın bana ne anlattığı. Birisi bunu anlamama yardımcı olabilir. Bu saçlarımı yırtıyorum. Teşekkürler.

 ... doug 

cevap

1

Yeniden yazma kurallarında tanımlanabilen bayrak karakterine başvurmanız gerekir.

Sana bir yeniden yazma kuralını yazılı olup olmadığını, istemci tarafı JavaScript kullanılarak elde edilen url okuyamaz, senin kavramında bir hata onların olduğunu görebilirsiniz, Ayrıca https://httpd.apache.org/docs/current/rewrite/flags.html

bakınız.

Gerçekten yapmak istiyorsan, yönlendirilecek R bayrağını kullanabilirsin, ancak bu durumda yeniden yazma kuralı yerine yenilecek.

+0

TEŞEKKÜRLER! Öyleyse, temelde bence, belirli bir URL'nin yeniden yazıldığı gerçeğini gizlemek istendiğinde sunucu tarafı desteğinin gerekli olduğunu düşünüyorum. Bu son derece önemli bir nokta. Ek olarak, çok anlamlı. Sanırım herkesin, kullanıcının farkında olduğunu varsayar. Yine, yardımlarınız için çok teşekkürler. Sonunda bu konuyu arkamda bıraktığım için çok mutluyum. – user3311045