Skip to content

Commit 945de2f

Browse files
committed
rewrite fix
1 parent 6fc87ac commit 945de2f

File tree

2 files changed

+65
-17
lines changed

2 files changed

+65
-17
lines changed

source/function/cache/cache_setting.php

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -444,21 +444,24 @@ function build_cache_setting() {
444444
if($_G['setting']['rewritestatus'] || $output['str']['search']) {
445445
if($_G['setting']['rewritestatus']) {
446446
require_once libfile('function/admincp');
447+
$output['preg'] = rewritedata(0);
447448
}
448-
foreach($data['footernavs'] as $id => $nav) {
449-
$data['footernavs'][$id]['code'] = rewritereplace($nav['code']);
450-
}
451-
foreach($data['spacenavs'] as $id => $nav) {
452-
$data['spacenavs'][$id]['code'] = rewritereplace($nav['code']);
453-
}
454-
foreach($data['mynavs'] as $id => $nav) {
455-
$data['mynavs'][$id]['code'] = rewritereplace($nav['code']);
456-
}
457-
foreach($data['topnavs'] as $id => $nav) {
458-
$data['topnavs'][$id]['code'] = rewritereplace($nav['code']);
459-
}
460-
foreach($data['plugins']['jsmenu'] as $key => $nav) {
461-
$data['plugins']['jsmenu'][$key]['url'] = rewritereplace($nav['url']);
449+
if($output['preg']){
450+
foreach($data['footernavs'] as $id => $nav) {
451+
$data['footernavs'][$id]['code'] = rewritereplace($nav['code']);
452+
}
453+
foreach($data['spacenavs'] as $id => $nav) {
454+
$data['spacenavs'][$id]['code'] = rewritereplace($nav['code']);
455+
}
456+
foreach($data['mynavs'] as $id => $nav) {
457+
$data['mynavs'][$id]['code'] = rewritereplace($nav['code']);
458+
}
459+
foreach($data['topnavs'] as $id => $nav) {
460+
$data['topnavs'][$id]['code'] = rewritereplace($nav['code']);
461+
}
462+
foreach($data['plugins']['jsmenu'] as $key => $nav) {
463+
$data['plugins']['jsmenu'][$key]['url'] = rewritereplace($nav['url']);
464+
}
462465
}
463466
}
464467
$data['output'] = $output;
@@ -1065,4 +1068,4 @@ function parsehighlight($highlight) {
10651068
return $style;
10661069
}
10671070

1068-
?>
1071+
?>

source/function/function_admincp.php

Lines changed: 47 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1368,7 +1368,52 @@ function rewritereplace($content){
13681368
function rewritedata($alldata = 1) {
13691369
global $_G;
13701370
$data = array();
1371-
if($alldata) {
1371+
if(!$alldata) {
1372+
if(in_array('portal_topic', $_G['setting']['rewritestatus'])) {
1373+
$data['search']['portal_topic'] = "/".$_G['domain']['pregxprw']['portal']."\?mod\=topic&(amp;)?topic\=([^#]+?)?\"([^\>]*)\>/e";
1374+
$data['replace']['portal_topic'] = "rewriteoutput('portal_topic', 0, '\\1', '\\3', '\\4')";
1375+
}
1376+
1377+
if(in_array('portal_article', $_G['setting']['rewritestatus'])) {
1378+
$data['search']['portal_article'] = "/".$_G['domain']['pregxprw']['portal']."\?mod\=view&(amp;)?aid\=(\d+)(&page\=(\d+))?\"([^\>]*)\>/e";
1379+
$data['replace']['portal_article'] = "rewriteoutput('portal_article', 0, '\\1', '\\3', '\\5', '\\6')";
1380+
}
1381+
1382+
if(in_array('forum_forumdisplay', $_G['setting']['rewritestatus'])) {
1383+
$data['search']['forum_forumdisplay'] = "/".$_G['domain']['pregxprw']['forum']."\?mod\=forumdisplay&(amp;)?fid\=(\w+)(&page\=(\d+))?\"([^\>]*)\>/e";
1384+
$data['replace']['forum_forumdisplay'] = "rewriteoutput('forum_forumdisplay', 0, '\\1', '\\3', '\\5', '\\6')";
1385+
}
1386+
1387+
if(in_array('forum_viewthread', $_G['setting']['rewritestatus'])) {
1388+
$data['search']['forum_viewthread'] = "/".$_G['domain']['pregxprw']['forum']."\?mod\=viewthread&(amp;)?tid\=(\d+)(&extra\=(page\%3D(\d+))?)?(&page\=(\d+))?\"([^\>]*)\>/e";
1389+
$data['replace']['forum_viewthread'] = "rewriteoutput('forum_viewthread', 0, '\\1', '\\3', '\\8', '\\6', '\\9')";
1390+
}
1391+
1392+
if(in_array('group_group', $_G['setting']['rewritestatus'])) {
1393+
$data['search']['group_group'] = "/".$_G['domain']['pregxprw']['forum']."\?mod\=group&(amp;)?fid\=(\d+)(&page\=(\d+))?\"([^\>]*)\>/e";
1394+
$data['replace']['group_group'] = "rewriteoutput('group_group', 0, '\\1', '\\3', '\\5', '\\6')";
1395+
}
1396+
1397+
if(in_array('home_space', $_G['setting']['rewritestatus'])) {
1398+
$data['search']['home_space'] = "/".$_G['domain']['pregxprw']['home']."\?mod=space&(amp;)?(uid\=(\d+)|username\=([^&]+?))\"([^\>]*)\>/e";
1399+
$data['replace']['home_space'] = "rewriteoutput('home_space', 0, '\\1', '\\4', '\\5', '\\6')";
1400+
}
1401+
1402+
if(in_array('home_blog', $_G['setting']['rewritestatus'])) {
1403+
$data['search']['home_blog'] = "/".$_G['domain']['pregxprw']['home']."\?mod=space&(amp;)?uid\=(\d+)&(amp;)?do=blog&(amp;)?id=(\d+)\"([^\>]*)\>/e";
1404+
$data['replace']['home_blog'] = "rewriteoutput('home_blog', 0, '\\1', '\\3', '\\6', '\\7')";
1405+
}
1406+
1407+
if(in_array('forum_archiver', $_G['setting']['rewritestatus'])) {
1408+
$data['search']['forum_archiver'] = "/<a href\=\"\?(fid|tid)\-(\d+)\.html(&page\=(\d+))?\"([^\>]*)\>/e";
1409+
$data['replace']['forum_archiver'] = "rewriteoutput('forum_archiver', 0, '\\1', '\\2', '\\4', '\\5')";
1410+
}
1411+
1412+
if(in_array('plugin', $_G['setting']['rewritestatus'])) {
1413+
$data['search']['plugin'] = "/<a href\=\"plugin\.php\?id=([a-z]+[a-z0-9_]*):([a-z0-9_\-]+)(&amp;|&)?(.*?)?\"([^\>]*)\>/e";
1414+
$data['replace']['plugin'] = "rewriteoutput('plugin', 0, '\\1', '\\2', '\\3', '\\4', '\\5')";
1415+
}
1416+
} else {
13721417
$data['rulesearch']['portal_topic'] = 'topic-{name}.html';
13731418
$data['rulereplace']['portal_topic'] = 'portal.php?mod=topic&topic={name}';
13741419
$data['rulevars']['portal_topic']['{name}'] = '(.+)';
@@ -1460,4 +1505,4 @@ function siteftp_upload($readfile, $writefile) {
14601505
}
14611506
}
14621507

1463-
?>
1508+
?>

0 commit comments

Comments
 (0)