28

宝塔配置本地环境完成后,网站伪静态提示:No input file specified.

本地原来是phpStudy集成工具,但IIS没有使用集成中的,是自己直接windows中安装的,本地测试时直接IIS中新建网站,设置新端口,只使用着phpStudy中的mysql和php。

最近的这个项目基本是使用SVN上传到服务器的,直接在实际环境中开发,有好处也有坏处。好处就是开发完成后,直接就可以使用了;不好的地方就是上传太频繁。那么在本地开发的优缺点正好与上面的相反,好处就是不用频繁上传等,改完直接浏览器测试;不好的地方就是开发完成后,放到实际环境中就可能会出现N吨BUG,也是很头疼的。

最近这项目由于上传操作太频繁了,所以想着远程与本地开发结合一下,突然想不用phpStudy,试试宝塔,下载>>安装>>基础配置>>建站测试,也是折腾了有十个八个小时的样子

现在基本环境是apache+php+mysql Continue reading

07

百度云服务器之Nginx环境下伪静态配置

在网站根目录创建文件 bcloud_nginx_user.conf

将伪静态规则写在中括号内 location / { …… }

下面是一位客户从百度的Lighttpd环境迁移到Nginx环境之后,我帮他修改的规则。

写完规则,记得重启nginx,才能去吃饭哦!!!

相关文档:

百度Nginx环境高级配置

Nginx伪静态配置和常用Rewrite伪静态规则集锦

BCH配置伪静态

Windows主机IIS7开启伪静态功能Rewite

Apache Rewrite规则(伪静态)实例

12

Apache Rewrite规则(伪静态)实例

1.Rewrite规则简介

Rewirte主要的功能就是实现URL的跳转,它的正则表达式是基于Perl语言。可基于服务器级的(httpd.conf)和目录级的(.htaccess)两种方式。如果要想用到rewrite模块,必须先安装或加载rewrite模块。方法有两种一种是编译apache的时候就直接安装rewrite模块,别一种是编译apache时以DSO模式安装apache,然后再利用源码和apxs来安装rewrite模块。

基于服务器级的(httpd.conf)有两种方法,一种是在httpd.conf的全局下直接利用RewriteEngine on来打开rewrite功能;另一种是在局部里利用RewriteEngine on来打开rewrite功能,下面将会举例说明,需要注意的是,必须在每个virtualhost里用RewriteEngine on来打开rewrite功能。否则virtualhost里没有RewriteEngine on它里面的规则也不会生效。

基于目录级的(.htaccess),要注意一点那就是必须打开此目录的FollowSymLinks属性(httpd.conf中的Option FollowSymLinks)且在.htaccess里要声明RewriteEngine on。

2. Apache mod_rewrite规则中的标记含义

==常用变量:

详细变量介绍,查看>>Apache Rewrite服务器常用变量汇总

%{QUERY_STRING} URL参数(Query String)是URL里面“?”后面的部分,它通常用于传输参数给CGI脚本或者其它动态页面。在Apache中,该值存储在环境变量QUERY_STRING中(在PHP中,可以通过$_SERVER['QUERY_STRING']访问到),是Apache定义的“变量=值”向量(数组)。 在Apache中,大多对URL进行操作的指令,如、Redirect、Alias和RewriteRule,都不能直接访问该数据;不过,mod_rewrite模块却可以对URL参数进行添加、删除和修改。其中的关键就是使用RewriteCond来匹配%{QUERY_STRING}变量,如果需要的话,还可以使用[QSA]标志来附加URL参数。

%1、%2…%n 是反向引用,来自之前的RewriteCond中正则表达式的匹配结果

%{HTTP_HOST} 保存主机头信息,也就是当前访问的域名,即“http://”和之后第一个“/”之间的内容。如果访问地址是http://www.mrdede.com/aaa,则%{HTTP_HOST}=www.mrdede.com;如果访问http://cdn.www.mrdede.com/,%{HTTP_HOST}=cdn.www.mrdede.com

%{SERVER_PORT} 默认情况下直接输出apache的配置文件httpd.conf中的ServerName值

httpd.conf配置如下:

客户端访问域名www.mrdede.com
%{HTTP_HOST} = www.mrdede.com
%{SERVER_NAME} = mrdede.com
所以,在实际程序中,应尽量使用%{HTTP_HOST} ,比较保险和可靠。

%{SERVER_PORT} 端口号

%{REQUEST_URI} 假设访问地址为http://mrdede.com/aaa/index.php?b=1&c=2,则%{REQUEST_URI}的值是http://mrdede.com后面包含正斜杠“/”在内的内容,即%{REQUEST_URI}=/aaa/index.php?b=1&c=2

%{HTTP_USER_AGENT} 是User-agent信息

 

==指令:

RewriteBase 定义了重写基准目录。

  • 例如,如果你将虚拟站点设置在/var/www目录下,删除这行将会导致重定向到http://mrdede.com/var/www/1.php。显然这是找不到的,而且你也不会希望用户看见你的服务器的目录结构。
  • 再举个例子,如果RewriteBase /base/,那么将会重定向到http://mrdede.com/base/1.php。

 

3.目录级(.htaccess)实例说明 Continue reading