php网站在windows主机搬到linux主机后,只能访问首页,其他页面地址都是404

php网站在windows主机搬到linux主机后,只能访问首页,其他页面地址都是404,第1张

 相信网上有很多关于404页面的制作帖子了,这里我要总结的是根据自己这一次网站被降权而总结的404自定义错误页面的制作,绝对超级详细。

一、什么是自定义404错误页面?

404自定义错误页面就是当用户输入了错误的url地址或者输入了一个不存在的url地址时,所返回的一个页面,它的目的是:告诉浏览者其所请求的页面不存在或链接错误,同时引导用户使用网站其他页面而不是关闭窗口网站离开。

二、404自定义错误页面是如何形成的?

HTTP 404 错误意味着链接指向的网页不存在,即原始网页的URL失效,这种情况经常会发生,很难避免,比如说:网页URL生成规则改变、网页文件更名或移动位置、导入链接拼写错误等,导致原来的URL地址无法访问当web服务器接到类似请求时,会返回一个404 状态码,告诉浏览器要请求的资源并不存在。但是,Web服务器默认的404错误页面,无论Apache服务器还是IIS服务器,均十分简陋、呆板且对用户不友好,无法给用户提供必要的信息以获取更多线索,无疑这会造成用户的流失。

因此,很多网站均使用自定义404错误的方式以提供用户体验避免用户流失。一般而言,自定义404页面通用的做法是在页面中放置网站快速导航链接、搜索框以及网站提供的特色服务,这样可以有效的帮助用户访问站点并获取需要的信息。

三、404自定义错误页面对SEO的影响

自定义404错误页面是增强用户体验的很好的做法,但在应用过程中,网站制作者往往并未注意到对搜索引擎的影响,譬如:错误的服务器端配置导致返回“200”状态码或自定义404错误页面使用Meta Refresh属性导致返回“302”状态码。正确设置的自定义404错误页面,不仅应当能够正确地显示,同时,应该返回“404”错误代码,而不是 “200”或“302”。虽然对访问的用户而言,HTTP状态码究竟是“404”还是“200”来说并没有什么区别,但对搜索引擎这则是相当重要的。

所以要确保404页面返回的是404代码而不是200和302.在自定义404错误页面设置完毕后,一定要检查一下其是不是能够正确地返回“404”状态码。可以使用Server Header检查工具(http://www.sendong.net/seo-tools/redirect-check/),输入一个不存在网页的url,查看一下HTTP Header的返回情况,确信其返回的是“404 Not found”。

四、定制404错误页面的基本原则

首先应明确的是,404错误页面应工作在服务器级而不是网页级。对定制使用动态页面如PHP脚本类型的404页(如:404.php、404.asp、404.aspx等)时,必须确保在PHP执行前服务器已经顺利地送出“404”状态码,不然,一旦执行到了ISAPI(一般运行在windows服务器上的伪静态脚本服务技术)级别,返回的状态码便只能是“200”或其他如“302”之类的重定向状态码了。对于大部分使用了windows虚拟主机,同时又支持PHP程序运行的服务器,一般都使用了ISAPI技术,他们可以提供两种自定义技术,一种静态404.htm页面, 这种页面一般不直接放在网站的根目录之下,而是放在一个“HttpError”这个文件夹之下,但是返回的状态码是“200”,另一种是动态404页(如:404.php)等的设置,这种设置,就是在网站的根目录之下放一个404.php之类的动态页面,这样会返回状态码“404”,所以网站的制作者,在虚拟主机的后台设置时,必须看清楚自己的设置,如何要做网站的SEO优化,那么就要设置成能返回“404”状态码的那种,否则就会吃大亏.

其次,在自定义网站的404错误页面时,对设置的错误页面URL链接应使用相对路径而不是绝对路径,而且自定义404页面应该放在网站根目录下。尽管无效链接可能是多种形式的URL,但当发生404访问错误时,WEB服务器会自动将其转到自定义的当404错误页中,这跟URL的形似没有关系。

五、404错误页面的设置方法

1、Apache服务器下设置404错误页面

为Apache Server设置 404错误页面的方法很简单,首先制作一个名为404.html/404.htm/404.php/404.asp/404.aspx的页面,视空间要求而定,再在.htaccess 文件中加入如下内容即可(.htaccess文件一般linux空间会自带的,如果没有这个文件,自己可以用记事本写一个,命名为.htaccess,一定要记得去掉记事本文件的.txt哦。而windows虚拟空间是没有这个文件的,也不用上传这个文件):

# 404 page

ErrorDocument 404 /notfound.php

(“notfound”是你给你的自定义错误页面的命名,你也可以改成Error.php等等)

注意:

(1).切记不要将404错误跳转到网站主页,比如使用了js脚本或者meta refresh跳转技术。否则可能会导致主页在搜索引擎中消失或者不被收录.

(2).切记不要使用绝对URL如果使用绝对URL返回的状态码是“302”+“200”

2、IIS/ASP.net下设置404错误页面

静态404错误页面设置

(1)做个404页面,404.html或者404.htm,根据你的网站实际情况来。

(2)服务器/虚拟主机管理设置,根据自己的情况,选择“使用根目录下的404页面”,如果自己能找到“消息类型”选项,则要选择“文件”或者“默认值”,而不能选择“URL”。如果自己在主机提供商网站的管理后台找不到此“消息类型”选项请联系技术客服做出修改。这是具有决定性的一步。 这步一定要操作好,如果在后台找不到这个消息类型,就不要自己设置,因为你设置之后肯定返回值是200,所以事先和客服联系下。

(3)上传404.htm到网站根目录,打开一次试试,看是否成功了。

动态404错误页面设置

首先,修改应用程序根目录的设置,打开 “web.config” 文件编辑,在其中加入如下内容:

<P><configuration></P>

<P><system.web></P>

<P><customErrors mode=”On” defaultRedirect=”error.asp”></P>

<P><error statusCode=”404″ redirect=”notfound.asp” /></P>

<P></customErrors></P>

<P></system.web></P>

<P></configuration></P>

复制代码

注:上文例中“error.asp”为系统默认的404页面,“notfound.asp”为自定义的404页面,使用时请修改相应文件名。

然后,在自定义的404页面“notfound.asp”中加入:

 

<P> <%</P>

<P>Response.Status = “404 Not Found”</P>

<P>%></P>

复制代码

这样,便可以保证IIS能够正确地返回“404”状态码。

所有的设置完成之后,别忘记检测http状态,确定返回的是404,而不是200。

Apache安装

版本解释:openssl是表示带有openssl模块,利用openssl就可以给Apache配置SSL安全链接的,也就是使用https://方式进行访问。

nossl则表示不带OpenSSL模块,无 法用于SSL安全链接,在这里我们下载带OpenSSL的。

选择版本:apache_2.2.14-win32-x86-openssl-0.9.8k.msi (此处以32位为例)

下载地址:http://www.apache.org/dist/httpd/binaries/win32/

首先我们在D盘(盘符根据实际情况自己选择)新建一个目录, 并且命名为“WAMP”其意义为“Wdindows Apache Mysql PhpMyAdmin” 之后安装的一些内容,也都将安装在该目录下。

1.安装说明:

运行apache安装程序,方法非常简单,弹安装界面后一直“next”接着会出现一个界面,需要填写3个内容,分别为:Network Domain、Server Name、Administrator’s Email Address 随便填写就好,不影响内容。

在下面还有2个选项,默认选择为80端口,第二个为8080端口,根据个人需求选择,一般为默认80端口。

我们继续安装,选择Custom(自定义安装)-“next”其中有打着红X的组件,我们单击这个组件容,选择“This feature, and all subfeatures, will be installed on local hard drive.”,即“此部分,及下属子部分内容,全部安装在本地硬盘上”。-“next”

然后选择右下角的“change ”改变安装路径,安装到刚才建立的目录中“D:\WAMP\Apache\”-“next”

安装完毕后,电脑右下角会多出一个图标,双击打开,选择start或restart,能正常运行,至此安装完毕。

2.修改配置:

打开安装录下D:\WAMP\Apache\conf\httpd.conf 文件(修改配置文件时,不建议使用记事本,可能会对其造成影响,推荐使用Notepad++或其他编辑软件打开修改)

打开以后Ctrl+F查找所要修改的内容

在#LoadModule vhost_alias_module modules/mod_vhost_alias.so下添加:

LoadModule php5_module “D:/WAMP/PHP/php5apache2_2.dll”

PHPIniDir “D:/WAMP/PHP”

AddType application/x-httpd-php .php

AddType application/x-httpd-php .htm

AddType application/x-httpd-php .html

DocumentRoot “E:/WAMP/Apache/htdocs”

修改成(这里的路径和IIS中wwwroot目录一样,用于存放网页,自定义或不做修改默认):DocumentRoot “D:/WAMP/www”

修改成(自定义或不做修改默认):

DirectoryIndex index.html

修改成:DirectoryIndex index.php default.php index.html index.htm default.html default.htm

3.测试

在D:/WAMP/www目录下 建立个index.html页面

在浏览器中输入 http://localhost/

如果能正常显示,Apache配置完毕,已经正常运行。

MySql安装

版本解释:The Essentials Package:不包含 embedded server and benchmark suite,有自动安装程序和配置向导,没有MySQL Documentation。

 The Complete Package:包含 embedded server and benchmark suite,有自动安装程序和配置向导,有MySQL Documentation。

 The Noinstall Archive:包含 embedded server and benchmark suite,没有自动安装程序和配置向导,有MySQL Documentation。

选择版本:mysql-essential-5.1.44-win32.msi

下载地址:http://www.mysql.com/downloads/mysql/

1.安装说明:

打开安装程序,单击“next”

选择custom,组件为默认选择,我们不做改动-“next”

路径设置为“D:\WAMP\Mysql”-“next”

安装好以后点击“finish”

跟着会出现一个配置向导-“next”

选择“Detailed Configuration(详细配置)”-“next”

这里有3个选项:

Developer Machine,将只用尽量少的内存;

Server Machine,将使用中等数量内存;

Dedicated MySQL Server Machine,这台服务器上面只跑mysql数据库,将占用全部的内存。

可以根据自己需求选择,这里我们选择第二种“Server Machine”-“next”

选择数据库用途,同样有3个选项:

Mutltifunctional Database多功能用途,将把数据库优化成很好的innodb存储类型和高效率的myisam存储类型;

Transactional Database Only只用于事务处理类型,最好的优化innodb,但同时也支持myisam;

Non-Transactional Databse Only非事务处理类型,适合于简单的应用,只有不支持事务的myisam类型是被支持的。

一般选择第一种多功能的,同样我们也是。-“next”

选择InnodDB的数据存放位置,一般默认就行,为了统一我填写了“WAMP/MySQL Datafiles”-“next”

选择mysql允许的最大连接数,第一种是最大20个连接并发数,第二种是最大500个并发连接数,最后一种是自定义,自己可以根据需求选择,我选择第二个-“next”

下面是选择数据库监听的端口,一般默认是3306,如果改成其他端口,以后连接数据库的时候都要记住修改的端口,否则不能连接mysql数据库,比较麻烦,这里不做修改,用mysq的默认端口:3306-“next”

这一步设置mysql的默认编码,我们选择第三个,并在Character Set菜单中,选择“gbk”编码-“next”

(注:如果要用原来数据库的数据,最好能确定原来数据库用的是什么编码,如果这里设置的编码和原来数据库数据的编码不一致,在使用的时候可能会出现乱码。)

这一步是是否要把mysql设置成windows的,一般选择设成服务,这样以后就可以通过服务中启动和关闭mysql数据库。下面的复选框也勾选上,这样,在cmd模式下,不必非到mysql的bin目录下执行命令。也就是把上下2个勾都打上,中间默认-“next”

这一步是设置mysql的超级用户密码,这个超级用户非常重要,对mysql拥有全部的权限,请设置好并牢记超级用户的密码,下面有个复选框是选择是否允许远程机器用root用户连接到你的mysql服务器上面,如果有这个需求,也请勾选。这里我们使用默认选择,在New root password和Confirm中输入密码。“next”

点击“execute”进行配置,稍微等待一会,圆点上的勾全部打上,就代表配置完毕。

2.修改配置:

打开D:\WAMP\MySQL\my.ini

设置datadir为D:/WAMP/MySQL/data/或你所要存放数据位置的目录即可。

PHP安装

版本解释:VC9 专门为IIS定值的脚本,使用Visual Studio 2008编译器编译,支持最新的微软组建,从而提高效率。

 VC6 是为了其他WEB服务软件提供的脚本 如 Apache。

 Thread Safe 现成安全,之星时会进行线程 安全检查,以防止有心要求就启动新线程(Thread)的CGI执行方式而耗尽系统资源。

 Non Thread Safe是非线程安全,在执行时不进行线程(Thread)安全检查

选择版本:PHP5.3(5.3.1)中VC6 x86 Thread Safe下 ZIP下载

下载地址:http://windows.php.net/download/

1.安装说明

由于我们下载的的是ZIP压缩包,只需要将文件解压到“D:\WAMP\PHP”目录下即可

2.修改配置

将E:\WAMP\PHP\php.ini-development 文件修改成php.ini

打开php.ini

extension_dir = “ext”

修改成:extension_dir = “E:\WAMP\PHP\ext”

将947行下,这些文件前面的“”去除

extension=php_curl.dll

extension=php_gd2.dll

extension=php_mbstring.dll

extension=php_mysql.dll

extension=php_mysqli.dll

extension=php_pdo_mysql.dll

extension=php_xmlrpc.dll

date.timezone =

修改成(很多网站没提到这里要修改,默认为美国时间,如果不修改会报错):date.timezone = Asia/Shanghai

3.测试

重启Apache(修改过配置文件 必须重启Apache才会生效)

新建个index.php 页面,代码中输入,保存文件放到“D:\WMAP\www\”目录下

打开浏览器输入:http://localhost/index.php 如果能正常显示,说明PHP配置完毕,可以查看该页面的PHP信息是否正确。

(注:在改文件中输入函数可输出大量的有关PHP当前状态的信息,如PHP版本,服务器信息和环境等。)

(注:)

接着我们测试下,是否能连接到Mysql

再新建个link.php,下代码中输入

$link=mysql_connect(“127.0.0.1″,”root”,”Mysql安装时填写的密码”)

if(!$link) echo “Mysql数据库连接失败!”

else echo “Mysql数据库连接成功!”

mysql_close()

?>

也保存文件放到“D:\WMAP\www\”目录下

打开浏览器输入:http://localhost/link.php 查看

PhpMyAdmin安装

版本解释:phpMyAdmin-3.2.5

选择版本:phpMyAdmin-3.2.5-all-languages.zip

下载地址:http://www.phpmyadmin.net/home_page/downloads.php

1.安装说明

解压到D:\WAMP\phpMyAdmin

2.修改配置

打开D:\WAMP\phpMyAdmin\libraries\config.default.php

$cfg['PmaAbsoluteUri'] = ”

修改成(填写访问phpMyAdmin的绝对URL):$cfg['PmaAbsoluteUri'] = ‘http://localhost/PHPMyadmin/’

$cfg['Servers'][$i]['host'] = ‘localhost’

修改成(填写服务器地址,通常默认,不需要修改):$cfg['Servers'][$i]['host'] = ‘localhost’

$cfg['Servers'][$i]['user'] = ‘root’

修改成(填写Mysql用户名,这里我们默认):$cfg['Servers'][$i]['user'] = ‘root’

$cfg['Servers'][$i]['password'] = ”

修改成(填写Mysql密码):$cfg['Servers'][$i]['password'] = ‘Mysql PWD

$cfg['Servers'][$i]['auth_type'] = ‘cookie’

修改成(设置认证方法,安全因素考虑,填写成cookie):$cfg['Servers'][$i]['auth_type'] = ‘cookie’

$cfg['blowfish_secret'] = ”

修改成(设置短语密码,如果上面设置成cookie,那这里不能留空,不然登陆会提示错误):$cfg['blowfish_secret'] = ‘cookie’

3.测试

打开浏览器输入:http://localhost/phpmyadmin/ 访问和登陆。

5

完成!

至此Windows7下的PHP环境搭建完毕,大家尽情的使用吧。

END

注意事项

严格按照文中步骤进行操作,否则会出现错误。

要把php网站传到虚拟主机上,直接把网页代码直接上传就可以了。

一、PHP简介:

1、PHP,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hypertext Preprocessor)的缩写。PHP 是一种 HTML 内嵌式的语言,PHP与微软的ASP颇有几分相似,都是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,现在被很多的网站编程人员广泛的运用。

2、PHP 独特的语法混合了C、Java、Perl 以及 PHP 自创新的语法。它可以比 CGI 或者 Perl 更快速的执行动态网页。

3、PHP最初是由勒多夫在1995年开始开发的;现在PHP的标准由the PHP Group维护。PHP以PHP License作为许可协议,不过因为这个协议限制了PHP名称的使用,所以和开放源代码许可协议GPL不兼容。

4、通俗讲PHP是一个脚本语言,PHP,是英文超文本预处理语言Hypertext Preprocessor的递归缩写。PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛地运用。

5、可以生成Forms,ComboBoxes,Grid,Menus等的组件,并支持将数据转为XML/JSON格式,现在互联网上绝大多数的语言程序用的都是php。

二、虚拟主机的定义:

1、虚拟主机,也叫“网站空间”,就是把一台运行在互联网上的物理服务器划分成多个“虚拟”服务器。

2、虚拟主机技术极大的促进了网络技术的应用和普及。同时虚拟主机的租用服务也成了网络时代的一种新型经济形式。

三、虚拟主机的技术特点:

1、虚拟主机技术是互联网服务器采用的节省服务器硬件成本的技术,虚拟主机技术主要应用于HTTP(Hypertext Transfer Protocol,超文本传输协议)服务,将一台服务器的某项或者全部服务内容逻辑划分为多个服务单位,对外表现为多个服务器,从而充分利用服务器硬件资源。

2、虚拟主机是使用特殊的软硬件技术,把一台真实的物理服务器主机分割成多个逻辑存储单元。每个逻辑单元都没有物理实体,但是每一个逻辑单元都能像真实的物理主机一样在网络上工作,具有单独的IP地址(或共享的IP地址)、独立的域名以及完整的Internet服务器(支持WWW、FTP、E-mail等)功能。

3、虚拟主机的关键技术在于,即使在同一台硬件、同一个操作系统上,运行着为多个用户打开的不同的服务器程式,也互不干扰。而各个用户拥有自己的一部分系统资源(IP地址、文档存储空间、内存、CPU等)。

4、各个虚拟主机之间完全独立,在外界看来,每一台虚拟主机和一台单独的主机的表现完全相同。所以这种被虚拟化的逻辑主机被形象地称为“虚拟主机”。

四、虚拟主机的比较:

1、虚拟主机服务商的专业水平和服务质量因素。这是选择虚拟主机的第一要素,如果选择了质量比较低下的虚拟主机服务商,很可能会在整个运营中遇到各种问题,甚至经常出现网站无法正常访问的情况,或者遇到问题时很难得到及时解决,这样都会严重影响企业开拓市场需要。

2、虚拟主机的空间大小、操作系统、对一些特殊功能如数据库等是否支持因素。可根据网站程序所占用的空间,以及预计以后运营中所增加的空间来选择虚拟主机的空间大小,应该留有足够余量,以免影响网站正常运行。

3、一般说来虚拟主机空间越大价格也相应较高,因此需在一定范围内权衡,也没有必要购买过大的空间。购买过程中,要根据自己主页所需要的功能来进行选择,如果可能,最好在建站之前就先了解一下虚拟主机产品的情况,以免在建站完成之后找不到合适的虚拟主机提供商。

4、虚拟主机的稳定性和速度等因素。这些因素都影响站点的正常运作,需要有一定了解,如果可能,在正式购买之前,先了解一下同服务器上其他网站的运行情况.


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/311499.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存