HEX
Server: nginx/1.28.1
System: Linux 10-41-63-61 6.8.0-31-generic #31-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 20 00:40:06 UTC 2024 x86_64
User: www (1001)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/wwwroot/bs.kntsleep.com/system/admin/seo/rewrite.class.php
<?php
/*
 * Copyright (c) Huyin Information Technology Co., Ltd. All Rights Reserved.
 * BOSSCMS Content Management System (https://www.bosscms.net/)
 */
defined('IS_OK') or exit('Access Forbidden');

into::basic_class('admin');

class rewrite extends admin
{
    public function nav()
    {
        global $G;
		return $this->permit(
			array(
				'rewrite'=>array(
					'name' => '伪静态',
					'mold' => 'seo',
					'part' => 'rewrite',
					'check' => 'RM',
					'tag' => 'seo_rewrite'
				),
				'rule'=>array(
					'name' => 'URL规则',
					'mold' => 'seo',
					'part' => 'rule',
					'check' => 'RM',
					'tag' => 'seo_rule'
				),
			)
		);
    }
	
	public function init()
	{
		global $G;
		$G['cover'] = $this->cover();
		$G['navs1'] = self::nav();
		$G['navs1']['rewrite']['active'] = true;
		
		$server = getServer();
		$G['config']['rewrite_text'] = $this->rule($server);
		echo $this->theme('seo/rewrite');
	}
	
	public function add()
	{
		global $G;
		$this->cover('seo&rewrite','M');
		if(isset($G['post'])){
			$data = array(
				'rewrite_open' => $G['post']['rewrite_open']
			);
			foreach($data as $k=>$v){
				mysql::select_set(array('name'=>$k,'value'=>$v,'parent'=>'0','type'=>'0'),'config',array('value'));
			}
			if($data['rewrite_open'] != $G['config']['rewrite_open']){
				$server = getServer();
				$file = false;
				if($server=='apache'){
					$file = '.htaccess';
				}else if($server=='nginx'){
					$file = '.htaccess';
				}else if($server=='iis'){
					$file = 'web.config';
				}
				if($file){
					if($data['rewrite_open']){
						dir::create(ROOT_PATH.$file, $this->rule($server));
					}else if(!mysql::total('config',"name='rewrite_open' AND parent='0' AND type='0' AND value='1' AND lang=lang")){
						dir::delete(ROOT_PATH.$file);
					}
				}
			}
			$this->sitemap();
			alert('操作成功', url::mpf('seo','rewrite','init'));
		}
	}
	
	public function rule($server){
		global $G;
		switch($server){
			case 'apache': return 
'RewriteEngine on
RewriteBase '.$G['path']['aisle'].'

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?bosscmsrewrite=1 [L]';
			case 'nginx': return 
'location '.$G['path']['aisle'].' {
	if (!-e $request_filename) {
		rewrite ^(.*)$ '.$G['path']['aisle'].'index.php?bosscmsrewrite=1 last;
	}
}';
			case 'iis': return 
'<?xml version="1.0" encoding="UTF-8"?>
<configuration>
	<system.webServer>
		<rewrite>
			<rules>
				<rule name="rule" 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?bosscmsrewrite=1" appendQueryString="true" />
				</rule>
			</rules>
		</rewrite>
	</system.webServer>
</configuration>';
		}
	}
}
?>