2013-08-01 73 views
0


我遇到了URL中的空白問題。如果地址包含空格,如何正確重定向請求。我正在使用xampp,這是迄今爲止我所擁有的。向URL添加空格會重定向到搜索引擎

htaccess 

RewriteEngine On 
RewriteBase /test/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php [L,QSA] 


index.php 

//sample pages 
$pages = array('home','about','contact'); 
$parts = explode("/",$_SERVER['REQUEST_URI']); 

    if(!in_array(end($parts), $pages)) 
    {  
     header("HTTP/1.0 404 Not Found"); 
     echo "Page not found"; 
     die(); 
    } 
    else 
    { 
     echo "You are on the ".end($parts)." page"; 
    } 

error.php 

echo "Error!"; 

當我輸入地址HTTP:/ /本地主機/測試/ contactkHTTP:/ /本地主機/測試/接觸 一切正常,但如果有人偶然,鍵入包括一個地址空白的一切崩潰的頁面被重定向到localhost之外,我可以看到類似這樣的內容:

顯示本地主機/測試/聯繫人的結果
Searc h替代本地主機/測試/續行爲

如何將所有不良請求重定向到error.php文件
謝謝。

+0

請確保您輸入完整的地址,即'http:// localhost/test/cont act' – anubhava

回答

1

顯示本地主機/測試/接觸 搜索,而不是本地主機/測試/續行爲造成[這不是一個鏈接]

這聽起來像是你的瀏覽器解釋你的URL作爲搜索查詢當你不小心把一個空間放進去。它似乎然後將您重定向到搜索引擎而不是您的網站。

因爲這是您的瀏覽器的操作,而不是您的服務器,因此您無法在全局範圍內更改此行爲。你當然可以改變你的瀏覽器的配置,但這仍然會發生在其他人使用同一瀏覽器。

+0

謝謝。我正在使用Firefox來達到這個目的。在其他瀏覽器中,一切正常。但我有我的xampp上安裝的drupal,wordpress和cmsms,並正確處理此問題? – user2641400

0

這是一個典型的瀏覽器功能。你有一個地址欄,你可以做兩項完全不同的任務:

  • 鍵入一個URL來加載
  • 鍵入搜索詞中的默認搜索引擎找到

你輸入一個字符串還沒有被確定爲URL的原因有兩個:

  • 它不以協議前綴開頭(如http://
  • 它包含一個轉義空白(這是不是在允許的URL)

...所以瀏覽器假設你想谷歌,就如同你鍵入「巴塞羅那的餐館」。

爲了安全起見,你可以只輸入完整的網址:

http://localhost/test/cont%20act 

...但你不能阻止你的訪問者作出這個錯誤。這是瀏覽器和用戶之間私人的東西;-)