O código a seguir é principalmente uma implementação pseudoestática. Em mecanismos de pesquisa,
você costuma ver URLs de outros sites como este, certo?
http://www.xxx.com/module/show/action/list/page/7
ou
http://xx.com/module/show/action/show/id/8.shtml com extensão ou
http://xx.com/module/show/action/show/id/8?word=ss&age=11
É isso. Hoje vou anunciar a implementação deste método, e separar a função de código mais simples da seguinte forma. Não é encapsulado em classes, principalmente porque não é necessário usar funções
<?php.
/**
* Obtenha acesso URL amigável
*
* @accesspublic
* @return matriz
*/
função getQueryString(){
$_SGETS = explode("/",substr($_SERVER['PATH_INFO'],1));
$_SLEN = contagem($_SGETS);
$_SGET = $_GET;
for($i=0;$i<$_SLEN;$i+=2){
if(!empty($_SGETS[$i]) && !empty($_SGETS[$i+1])) $_SGET[$_SGETS[$i]]=$_SGETS[$i+1];
}
$_SGET['m'] = !empty($_SGET['m']) && is_string($_SGET['m']) ? trim($_SGET['m']).'Action' : 'indexAction';
$_SGET['a'] = !empty($_SGET['a']) && is_string($_SGET['a']) ? trim($_SGET['a']) : 'executar';
retornar $_SGET;
}
/**
* Gerar URL do link
*
* @accesspublic
* @param matriz $arr
* @return string
*/
função setUrl($arr){
global $Global;
$queryString='';
if($Global['urlmode']==2){
foreach($arr as $k=> $v){
$queryString.=$k.'/'.$v.'/';
}
}
$queryString.=$Global['urlsuffix'];
retornar $queryString;
}
?>
Muito simples de usar
<?php
$_GET=getQueryString();
?>
Mas isto não é suficiente, isto só pode ser alcançado
http://www.xxx.com/index.php/module/show/action/list/page/7 Há um index.php extra no meio. Portanto, temos que removê-lo e reescrevê-lo. alguns arquivos não são Se você quiser, por exemplo, estilizar imagens, crie um arquivo .htaccess na condição
RewriteEngine on
RewriteCond $1 !^(index.php|css|pics|themes|js|robots.txt)
RewriteRule ^(.*)$ index.php/$1 [L]
Agora está tudo bem, vá e teste agora
<?php
$_GET=getQueryString();
imprimir_r($_GET);
?>