隐藏URL中的index

来源:互联网 发布:php exec 返回值2 编辑:程序博客网 时间:2024/04/30 10:51
  • 去掉 Url 中的 ?r= 和index.php (也就是隐藏url) Apache 服务器

    找到配置文件 基础应用 (config->web.php) 'urlManager' => [              // URL管理器    'enablePrettyUrl' => true,  // 美化URL 把 ? 好 r去掉了    'showScriptName' => false,  // 指定是否在URL在保留入口脚本 index.php    'rules' => [    ],],//被注释掉了  打开就行同时还要在index.php同级目录下新建.htaccess文件//表示重写引擎开RewriteEngine on//请求的文件或路径是不存在的,如果文件或路径存在将返回已经存在的文件或路径RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule . index.php3、.htaccess文件解释概述来说,htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。 
  • 高级应用模块

    修改 advanced/backend/config/main.php 文件如下:    'urlManager' => [    'enablePrettyUrl' => true,    'showScriptName' => false,    'rules' => [    ],],同样修改 advanced/frontend/config/main.php 文件:'urlManager' => [    'enablePrettyUrl' => true,    'showScriptName' => false,    'rules' => [    ],],接着设置服务器, 这里先以 apache 为例.首先设置一下虚拟主机:<VirtualHost *:80>    ServerName advanced.loc    ServerAlias www.advanced.loc    DocumentRoot "/path/to/advanced"    <Directory "/path/to/advanced">        AllowOverride All    </Directory></VirtualHost>然后在站点根目录下创建 .htaccess 文件为:# prevent directory listingsOptions -Indexes# follow symbolic linksOptions FollowSymlinksRewriteEngine onRewriteCond %{REQUEST_URI} ^/admin/$RewriteRule ^(admin)/$ /$1 [R=301,L]RewriteCond %{REQUEST_URI} ^/adminRewriteRule ^admin(/.+)?$ /backend/web/$1 [L,PT]RewriteCond %{REQUEST_URI} ^.*$RewriteRule ^(.*)$ /frontend/web/$1然后在 advanced/backend/web 目录中创建 .htaccess 文件, 内容如下:# use mod_rewrite for pretty URL supportRewriteEngine on# if a directory or a file exists, use the request directlyRewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-d# otherwise forward the request to index.phpRewriteRule . index.php然后在 advanced/frontend/web 目录中复制一份上面的.htaccess 文件Nginx 下的环境配置Nginx 下的配置可能稍微复杂一些, 这里直接贴出配置, 大家请根据自己的需要进行相应的修改:server {    charset      utf-8;    client_max_body_size  200M;    listen       80; ## listen for ipv4    #listen       [::]:80 default_server ipv6only=on; ## listen for ipv6    server_name  advanced.loc;    root         /path/to/advanced;    access_log   /path/to/logs/advanced.access.log main buffer=50k;    error_log    /path/to/logs/advanced.error.log warn;    location / {        root  /path/to/advanced/frontend/web;        try_files  $uri /frontend/web/index.php?$args;        # avoiding processing of calls to non-existing static files by Yii        location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {            access_log  off;            expires  360d;            try_files  $uri =404;        }    }    location /admin {        alias  /path/to/advanced/backend/web;        rewrite  ^(/admin)/$ $1 permanent;        try_files  $uri /backend/web/index.php?$args;    }    # avoiding processing of calls to non-existing static files by Yii    location ~ ^/admin/(.+\.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar))$ {        access_log  off;        expires  360d;        rewrite  ^/admin/(.+)$ /backend/web/$1 break;        rewrite  ^/admin/(.+)/(.+)$ /backend/web/$1/$2 break;        try_files  $uri =404;    }    location ~ \.php$ {        include  fastcgi_params;        # check your /etc/php5/fpm/pool.d/www.conf to see if PHP-FPM is listening on a socket or port        fastcgi_pass  unix:/var/run/php5-fpm.sock; ## listen for socket        #fastcgi_pass  127.0.0.1:9000; ## listen for port        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;        try_files  $uri =404;    }    #error_page  404 /404.html;    location = /requirements.php {        deny all;    }    location ~ \.(ht|svn|git) {        deny all;    }}
0 0