Php 向URL添加空间会重定向到搜索引擎
Php 向URL添加空间会重定向到搜索引擎,php,mod-rewrite,Php,Mod Rewrite,我对URL中的空格有问题。如果地址包含空格,如何正确重定向请求。我使用的是xampp,这就是我目前所拥有的 htaccess RewriteEngine On RewriteBase /test/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php [L,QSA] index.php //sample pages $pages = arra
我对URL中的空格有问题。如果地址包含空格,如何正确重定向请求。我使用的是xampp,这就是我目前所拥有的
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://localhost/test/contactk 或http://localhost/test/contact
所有内容都正常工作,但如果有人无意中输入了包含空格的地址,则所有内容都会崩溃。页面将重定向到localhost之外,我可以看到如下内容:显示本地主机/测试/联系人的结果
搜索localhost/test/cont-act 如何将所有错误请求重定向到error.php文件
多谢各位 显示本地主机/测试/联系人的结果 搜索localhost/test/cont act[这不是链接] 这听起来像是你的浏览器将你的URL解释为一个搜索查询,因为你不小心在其中放了一个空格。然后,它似乎将您重定向到搜索引擎,而不是您的网站
因为这是您的浏览器而不是服务器所做的,所以您无法在全球范围内改变这种行为。当然,您可以更改浏览器的配置,但使用同一浏览器的其他人仍然会这样做。这是典型的浏览器功能。您有一个位置栏,可以在其中执行两个完全不同的任务:
- 键入要加载的URL
- 键入要在默认搜索引擎中查找的搜索词
- 它不以协议前缀开头(例如
)http://
- 它包含一个空白(这在URL中是不允许的)
http://localhost/test/cont%20act
。。。但您无法阻止访问者犯此错误。这是浏览器和用户之间的隐私;-) 确保键入完整地址,即
http://localhost/test/cont act
谢谢。我使用firefox就是为了这个目的。真的,在其他浏览器中一切正常。但是我的xampp上安装了drupal、wordpress和cmsms,这个问题是否得到了正确的处理?