URL路由
Wangren 只要通过简单的设置就能很好的支持URL路由,通过此功能对URL地址进行重写,提高用户对网站的信任度,方便搜索引擎抓取网站内容,提升网站在搜索引擎的排名。
要开启URL路由功能,首先需要服务器的支持,不同的服务器软件开启方法各不相同,如 Apache 需要在 httpd.conf 中开启 rewrite_module 模块,具体大家可以自己百度一下。
服务器端支持后我们就需要写入 URL路由 规则了,还以 Apache 为例,一般常用有两种方法,即在根目录下建立一个 .htaccess 文件或者 直接在 Apache 里面的 httpd-vhosts.conf 文件里设置(具体设置方法这里也不多说了),下面我们给出 .htaccess 里面的配置代码:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.xxx.com [NC]
RewriteRule ^(.*) http://xxx.com/$1 [L]
RewriteCond %{REQUEST_URI} ^/(\w+)((/|_)(\w+)*)*(.(html|htm|shtml|shtm|xhtml))?$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) /index.php [L]
</IfModule>
确认以上两步没有问题后,您还需要通过简单配置,即可实现全站静态化显示。
配置文件地址:
/core/conf/router.ini.php
以下是具体配置项:
//是否开启URL路由
"URL_REWRITE" => Flase,
//URL重写分隔符,默认为 / ,目前仅支持 / 和 _
"URL_REWRITE_SEPARATOR" => "/",
//URL重写后缀,默认为 html,目前仅支持 html,htm,shtml,shtm,xhtml
"URL_REWRITE_EXT" => "html",
Wangren 的URL路由有它自己特定的规则,我们内置一个大U方法,您只需要按一定规则调用这个大U即可,不需要您再去做更多的思考和开发。
//大U在PHP开发中的完整使用方法
U('应用/模块/控制器#锚点','参数')
//应用/模块/控制器 均可用空,也可以部分为空,为空时默认为当前页面所属的 应用、模块和控制器
如:U('应用/模块/控制器')
U('模块/控制器')
U('控制器')
U()
//#锚点 可为空,也可以单独存在
如:U('应用/模块/控制器','参数')
U('#锚点')
//参数 可为空,也可以单独存在
如:U('应用/模块/控制器#锚点')
U(,'参数')
示例:
U('a/m/c#top','id=1')
U()
{U(应用/模块/控制器#锚点,参数)}
//完整示例
{U(app/module/controller#top,id=[par])}
大U在模板中的使用,详细请参考
视图开发->URL重写标签
有很多时后我们需要将项目放在网站的非根目录,这时我们需要对项目做相应的调整,主要是需要修改伪静态规则,其它地方不需调整:
//当项目放在根目录下的 project 目录时,URL路由规则如下:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.xxx.com [NC]
RewriteRule ^(.*) http://xxx.com/$1 [L]
RewriteCond %{REQUEST_URI} ^/project\/(\w+)((/|_)(\w+)*)*(.(html|htm|shtml|shtm|xhtml))?$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) /project/index.php [L]
</IfModule>