浏览代码

fix #1259 修复生成静态内容时的 url 问题

magicblack 2 月之前
父节点
当前提交
c107afc102
共有 1 个文件被更改,包括 18 次插入1 次删除
  1. 18 1
      application/common.php

+ 18 - 1
application/common.php

@@ -1760,6 +1760,10 @@ function mac_url($model,$param=[],$info=[])
     ksort($param); 
     ksort($param); 
 
 
     $config = $GLOBALS['config'];
     $config = $GLOBALS['config'];
+    
+    $is_static_mode = isset($GLOBALS['ismake']) && $GLOBALS['ismake'] == '1';
+    
+    // 静态生成模式标记(用于后续URL处理)
     $replace_from = ['{id}','{en}','{page}','{type_id}','{type_en}','{type_pid}','{type_pen}','{md5}','{year}','{month}','{day}','{sid}','{nid}'];
     $replace_from = ['{id}','{en}','{page}','{type_id}','{type_en}','{type_pid}','{type_pen}','{md5}','{year}','{month}','{day}','{sid}','{nid}'];
     $replace_to = [];
     $replace_to = [];
     $page_sp = $config['path']['page_sp'];
     $page_sp = $config['path']['page_sp'];
@@ -2438,6 +2442,20 @@ function mac_url($model,$param=[],$info=[])
         }
         }
     }
     }
 
 
+    // 在静态生成模式下,对生成的URL进行后处理,去掉admin/index前缀
+    if($is_static_mode && !empty($url)) {
+        if(strpos($url, '/index.php/') === 0) {
+            $url = preg_replace('/\/index\.php\/[^\/]+\.php\/admin\-/', '/index.php/', $url);
+            $url = str_replace('/admin-', '/', $url);
+        }
+        if(strpos($url, 'admin-') !== false) {
+            $url = str_replace('admin-', '', $url);
+        }
+        if(strpos($url, 'index-') !== false) {
+            $url = str_replace('index-', '', $url);
+        }
+    }
+
     return $url;
     return $url;
 }
 }
 function mac_url_page($url,$num)
 function mac_url_page($url,$num)
@@ -3013,4 +3031,3 @@ if (!function_exists('copydirs')) {
     }
     }
 }
 }
 
 
-