thinkphp5.1 || url重写 隐藏入口文件index.php(伪静态)

在这里插入图片描述在这里插入图片描述
以上完整路径可以正常跳转页面,而下面直接public/跳转页面失败。

在这里插入图片描述

在这里插入图片描述
这样访问不了是因为这样跳转url没有index.php入口文件,在没有url重写时,访问项目名/public/index.php/index/index/index可以直接 项目名/public访问 或**项目名/public/index.php/**或 **项目名/public/index.php/模块名/控制器/操作访问,这样必须要有index.php入口文件。**解决上面问题的方法就是重写url。
隐藏应用的入口文件index.php可以通过URL重写(也可以是其它的入口文件,但URL重写通常只能设置一个入口文件),相关服务器的配置参考如下:

  • 把httpd.conf配置文件中的mod_rewrite.so前面的#号删除
  • 把httpd.conf配置文件中的AllowOverride None 将None改为 All
  • 把下面的内容保存为.htaccess文件放到应用入口文件的同级目录下,其中下面代码最后一句任选一个语句尝试即可:
    <IfModule mod_rewrite.c>
      Options +FollowSymlinks -Multiviews
      RewriteEngine On
    
      RewriteCond %{
          
          REQUEST_FILENAME} !-d
      RewriteCond %{
          
          REQUEST_FILENAME} !-f
      RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]   // RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]	// RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]
    </IfModule>
    

或者

<IfModule mod_rewrite.c>
	  Options +FollowSymlinks -Multiviews
	  RewriteEngine On
	
	  RewriteCond %{
    
    REQUEST_FILENAME} !-d
	  RewriteCond %{
    
    REQUEST_FILENAME} !-f
	  RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]
	</IfModule>

以上只适用于apache服务器。

ngnix:

location / {
    
    
 if (!-e $request_filename){
    
    
  rewrite  ^(.*)$  /index.php?s=$1  last;   break;
 }
}

猜你喜欢

转载自blog.csdn.net/weixin_45703155/article/details/108072497