深圳全飞鸿

标题: 解决Fastadmin中C框架的网址显示问题 [打印本页]

作者: f008    时间: 2025-2-14 11:57
标题: 解决Fastadmin中C框架的网址显示问题
针对点击菜单栏,网址进行跳转,可能会跳到别的网址中

2efd257c14873921dc7566ae35a91b3.png (109.02 KB, 下载次数: 20)

2efd257c14873921dc7566ae35a91b3.png

作者: f008    时间: 2025-2-14 12:00
解决方案:初步将所有的网址后缀进行屏蔽

1739505588256.jpg (1.74 KB, 下载次数: 21)

1739505588256.jpg

1739505558780.jpg (69.69 KB, 下载次数: 23)

1739505558780.jpg

作者: f008    时间: 2025-3-3 13:59
本帖最后由 f008 于 2025-3-6 14:06 编辑
f008 发表于 2025-2-14 12:00
解决方案:初步将所有的网址后缀进行屏蔽

最终方案:按照如图所示在对应文件的对应位置操作即可实现
同时.htaccess脚本也需要更改,此处为以修改过后的
  1. <IfModule mod_rewrite.c>
  2. RewriteEngine on
  3. RewriteBase /erp/

  4. # Redirect root to C.php
  5.     RewriteRule ^$ /erp/C.php [L,R=301]

  6. RewriteCond %{REQUEST_FILENAME} !-f
  7. RewriteCond %{REQUEST_FILENAME} !-d
  8. RewriteRule ^L/(.*)?$ /erp/L.php/$1 [NC] [L]
  9. RewriteRule ^R/(.*)?$ /erp/R.php/$1 [NC] [L]
  10. RewriteRule ^A/(.*)?$ /erp/A.php/$1 [NC] [L]
  11. RewriteRule ^P/(.*)?$ /erp/P.php/$1 [NC] [L]
  12. RewriteRule ^J/(.*)?$ /erp/J.php/$1 [NC] [L]
  13. </IfModule>
复制代码



1740981791509.jpg (93.3 KB, 下载次数: 14)

1740981791509.jpg

1740981915640.jpg (2.82 KB, 下载次数: 10)

1740981915640.jpg

作者: f008    时间: 2025-4-22 16:05
f008 发表于 2025-3-3 13:59
最终方案:按照如图所示在对应文件的对应位置操作即可实现
同时.htaccess脚本也需要更改,此处为以修改 ...

在一个服务器中如果存在一个以上的C框架系统时,要改变解决方案,之前的方案只适用于服务器中只有一个C框架系统
作者: f008    时间: 2025-4-22 16:15
本帖最后由 f008 于 2025-4-22 16:18 编辑
f008 发表于 2025-4-22 16:05
在一个服务器中如果存在一个以上的C框架系统时,要改变解决方案,之前的方案只适用于服务器中只有一个C框 ...

案例:针对于思凌科的服务器中,存在sfc和label两个系统,使用之前的方法会使这两个系统中的其中一个系统无法定位到网页从而无法显示改动方案:在此目录下C:\Apache24\htdocs\lib\fastadmin-addtabs打开jquery.addtabs文件,找到相应代码进行改动在50行左右
  1. document.title = title;
  2.                 if (history.pushState && !$(this).data("pushstate")) {
  3.                     var pushurl = url.indexOf("ref=addtabs") === -1 ? (url + (url.indexOf("?") > -1 ? "&" : "?") + "ref=addtabs") : url;
  4.                     try {
  5.                       //  window.history.pushState(state, title, pushurl);
  6.                     } catch (e) {

  7.                     }
  8.                 }
复制代码
上述为原先的代码,要修改为
  1. document.title = title;
  2. if (history.pushState && !$(this).data("pushstate")) {
  3.     // 提取主目录(路径中的第一个非空段)
  4.     const path = window.location.pathname;
  5.     const mainDir = path.split('/').filter(segment => segment !== '')[0] || '';
  6.    
  7.     // 构造纯净 URL(协议://域名/主目录)
  8.     const newUrl = `${window.location.origin}${mainDir ? '/' + mainDir : '/'}`;
  9.    
  10.     try {
  11.         window.history.pushState(null, title, newUrl);
  12.     } catch (e) {
  13.         console.error('pushState 失败:', e);
  14.     }
  15. }
复制代码




这样就可以准确的定位到对应的系统当中,同时又可以解决C框架的显示问题





欢迎光临 深圳全飞鸿 (http://www.nagomes.com/disc/) Powered by Discuz! X3.2