zoukankan      html  css  js  c++  java
  • thinkphp去掉index.php

    通常的URL里面含有index.php,为了达到更好的SEO效果可能需要去掉URL里面的index.php ,通过URL重写的方式可以达到这种效果,通常需要服务器开启URL_REWRITE模块才能支持。
    下面是Apache的配置过程,可以参考下:
    1、httpd.conf配置文件中加载了mod_rewrite.so模块
    2、AllowOverride None 将None改为 All
    3、确保URL_MODEL设置为2
    4、把下面的内容保存为.htaccess文件放到入口文件的同级目录下

    <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
     </IfModule>

    重启Apache之后,原来的

    http://serverName/index.php/Blog/read/id/1
    就可以通过访问
    http://serverName/Blog/read/id/1
    简化了URL地址

    IIS环境
    如果你的服务器环境支持ISAPI_Rewrite的话,可以配置httpd.ini文件,添加下面的内容:
    RewriteRule (.*)$ /index.php?s=$1 [I]

    在IIS的高版本下面可以配置web.Config,在中间添加rewrite节点:
    <rewrite>
     <rules>
     <rule name="OrgPage" stopProcessing="true">
     <match url="^(.*)$" />
     <conditions logicalGrouping="MatchAll">
     <add input="{HTTP_HOST}" pattern="^(.*)$" />
     <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
     <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
     </conditions>
     <action type="Rewrite" url="index.php/{R:1}" />
     </rule>
     </rules>
     </rewrite>
    Nginx环境
    在Nginx低版本中,是不支持PATHINFO的,但是可以通过在Nginx.conf中配置转发规则实现:
    location / { // …..省略部分代码
       if (!-e $request_filename) {
       rewrite  ^(.*)$  /index.php?s=$1  last;
       break;
        }
     }
    其实内部是转发到了ThinkPHP提供的兼容模式的URL,利用这种方式,可以解决其他不支持PATHINFO的WEB服务器环境。

    如果你的ThinkPHP安装在二级目录,Nginx的伪静态方法设置如下,其中youdomain是所在的目录名称。
    location /youdomain/ {
            if (!-e $request_filename){
                rewrite  ^/youdomain/(.*)$  /youdomain/index.php?s=$1  last;
            }
        }

  • 相关阅读:
    F
    E
    D
    B
    A
    C
    I
    G
    F
    架构sass文件
  • 原文地址:https://www.cnblogs.com/walter371/p/4573015.html
Copyright © 2011-2022 走看看