Rumah  >  Soal Jawab  >  teks badan

Tanya soalan tentang penulisan semula apache

Saya tidak tahu kenapa ada garis miring yang hilang selepas menulis semula

Berikut ialah kod go.php

<?php
$url=$_GET['url'];
$url=urldecode($url);
echo $url;
?>

Peraturan tulis semula adalah seperti berikut

RewriteEngine On
RewriteRule ^go/(.*)$ go.php?url= [QSA]
PHPzPHPz2713 hari yang lalu720

membalas semua(3)saya akan balas

  • 巴扎黑

    巴扎黑2017-05-16 17:06:19

    Rujukan Mengapa Apache mengalih keluar berbilang garis miring?
    @Pekka 웃 menunjukkan bahawa berbilang / bersebelahan dalam URI tidak mematuhi standard RFC, @Pekka 웃 meneka bahawa Apache direka untuk menggabungkan berbilang / bersebelahan menjadi satu . /不符合RFC标准,@Pekka 웃 猜测Apache被设计为将多个相邻的/合并成一个。


    同样,我搜索后了解到在nginx中有merge_slashes这样一项配置,用于开启或者关闭将请求URI中相邻两个或更多斜线合并成一个的功能,默认这项配置是开启的。由此可见,apache和nginx默认在处理URI中多个相邻/时行为时一致的,都遵循了RFC标准。


    至于http://localhost/go.php?url=http://www.163.com/中的//没有合并成一个,而 http://localhost/go/http://www.163.com/中的//


    Begitu juga, selepas mencari, saya mengetahui bahawa terdapat konfigurasi seperti merge_slashes dalam nginx, yang digunakan untuk menghidupkan atau mematikan fungsi menggabungkan dua atau lebih garis miring bersebelahan dalam URI permintaan menjadi satu. Lalai Konfigurasi ini didayakan. Dapat dilihat bahawa apache dan nginx mempunyai tingkah laku yang konsisten apabila memproses berbilang / bersebelahan dalam URI secara lalai, dan kedua-duanya mengikut piawaian RFC.


    Bagi // dalam http://localhost/go.php?url=http://www.163.com/, ia tidak digabungkan menjadi satu, tetapi // dalam http://localhost/go/http://www.163.com/ digabungkan menjadi satu bukan. 🎜 🎜Saya tidak mempunyai pemahaman yang mendalam tentang piawaian RFC, jadi kenyataan di atas mungkin tidak cukup ketat Jika terdapat sebarang kesilapan, sila nyatakan. Tetapi selepas memahami tahap ini, saya merasakan bahawa ia hampir mencukupi untuk cara menukar peraturan atau kod menulis semula, sila google sendiri. 🎜

    balas
    0
  • 漂亮男人

    漂亮男人2017-05-16 17:06:19

    http://php.net/manual/zh/function.urldecode.php

    balas
    0
  • 巴扎黑

    巴扎黑2017-05-16 17:06:19

    Saya rasa Apache mengalih keluar // 化简成一个 / dalam laluan.

    balas
    0
  • Batalbalas