Q:wdcp使用apache+nginx 或者只用 apache,是否支持伪静态?
A:首先wdcp肯定是支持apache伪静态的,在服务器上执行 /www/wdlinux/apache/bin/httpd -l 列出的模块中包含mod_rewrite.c ,说明已经支持。(新版wdcp3.2.X版本除外,该命令不会在该版本显示对应重写模块。)
A:首先wdcp肯定是支持apache伪静态的,在服务器上执行 /www/wdlinux/apache/bin/httpd -l 列出的模块中包含mod_rewrite.c ,说明已经支持。(新版wdcp3.2.X版本除外,该命令不会在该版本显示对应重写模块。)
Q:为什么httpd.conf文件中没有 LoadModule rewrite_module modules/mod_rewrite.so 这行信息,服务器上也找不到mod_rewrite.so 这个伪静态的so文件,是不是wdcp的apache不支持伪静态功能?
A:没有so文件及加载模块信息,原因很简单, 只有动态形式编译安装才有这些信息,而wdcp的apache是静态编译安装的,伪静态功能已经直接编译进apache里了。(新版wdcp3.2.X版本除外,该版本在对应httpd.conf文件中找得到对应重写模块加载语句。)
A:没有so文件及加载模块信息,原因很简单, 只有动态形式编译安装才有这些信息,而wdcp的apache是静态编译安装的,伪静态功能已经直接编译进apache里了。(新版wdcp3.2.X版本除外,该版本在对应httpd.conf文件中找得到对应重写模块加载语句。)
Q:wdcp使用不同的web服务引擎,具体该使用哪种伪静态规则?
A:如果我们用的web服务引擎是apache+nginx 或者只用apache,那么我们用的规则是apache的规则;如果web服务引擎只使用nginx,那么我们就要用nginx的伪静态规则。 (新版wdcp3.2.X版本仍遵循该规则)
A:如果我们用的web服务引擎是apache+nginx 或者只用apache,那么我们用的规则是apache的规则;如果web服务引擎只使用nginx,那么我们就要用nginx的伪静态规则。 (新版wdcp3.2.X版本仍遵循该规则)
新版本WDCP 3.2.X版本加载伪静态规则时的注意事项:
新版本WDCP 3.2.X版本由于可以切换PHP版本,所以设置伪静态规则时注意一个问题:
在开设站点时,请留意PHP版本切换选项:使用默认PHP版本则网站使用PHP+apache的架构,若使用指定的PHP版本则网站使用的是PHP+Nginxd的构架。所以要使用apache的伪静态规则,则需要先设定默认的PHP版本后再开通站点选择默认PHP版本选项。
在开设站点时,请留意PHP版本切换选项:使用默认PHP版本则网站使用PHP+apache的架构,若使用指定的PHP版本则网站使用的是PHP+Nginxd的构架。所以要使用apache的伪静态规则,则需要先设定默认的PHP版本后再开通站点选择默认PHP版本选项。
为更好理解下面截图所示默认网站使用PHP5.6版本PHP,需要加载apache伪静态规则设置如下:
wdcp加载apache的伪静态规则有三种方法:
[v_organge]1、站点的web根目录中放置.htaccess伪静态规则文件[/v_organge]
此种方法需要注意的是,apache的站点配置文件中Dircetory部分,AllowOverride一定要是All,如果是None需要改成All, None是不支持加载.htaccess文件的。
<Directory /www/web/zouni> Options FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory>
[v_organge]2、在apache的站点配置文件中,VirtualHost部分之内直接添加伪静态规则,下面代码中 mod_rewrite.c 模块中的内容为添加内容,伪静态规则要写在<IfModule mod_rewrite.c> </IfModule>模块中。[/v_organge]
代码中的伪静态规则只是举例说明,具体的规则以网站实际的站点规则为准。
<VirtualHost *:88> DocumentRoot /www/web/zouni/public_html .......................................... <IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^(.*)list-([0-9]+)-([0-9]+)\.html$ $1list.php?page=$2&id=$3 </IfModule> .......................................... </VirtualHost>
重启web服务使设置生效。
[v_organge]3、在wdcp的web后台添加伪静态规则[/v_organge]
首先增加伪静态规则文件
指定规则保存的文件名,增加规则后并保存
新增或编辑站点配置时,启用rewirte,并选择对应的规则文件保存设置
重启web服务使设置生效。
关于nginx+apache环境伪静态规则是否有效的测试方法
在使用nginx+apache引擎的时候需要的伪静态无法使用的问题,请按照如下方式进行测试:
1.登录wdcp控制面板新建一个测试站点;
2.在测试站点根目录写入如下index.php测试代码页面:
<?php header("Content-type: text/html; charset=utf-8"); echo 'action:'.$_GET['action'].'<br>id:'.$_GET['id']; ?>
3.在测试站点根目录写入如下.htacccess文件:
RewriteEngine on RewriteRule ([a-zA-Z]{1,})-([0-9]{1,}).html$ index.php?action=$1&id=$2
4.访问如下url(test.example.com为你实际之用的域名或者IP),查看页面输出结果:
在浏览器中输入test.example.com/test-2013.html
如果页面能够输出如:
action:test
id:2013
则说明环境支持伪静态。