2010-12-07 3 views
0

Хорошо, допустим, мне нужно использовать URL-адреса seo. Как я мог управлять следующей схеме:Url переписывание с php?

www.mysite.com/{context}/{mode}/ 

Это позволяет получить переменные, объявленные следующим образом:

www.mysite.com/{context}/{mode}/{var}/{val}/{var2}/{val2}... 

Например:

www.mysite.com/user/view/id/123 

?

Решение ?, Как это сделать?

Возможно, решение может быть следующим: Все URL перенаправлены на www.mysite.com/index.php. В файле index.php я разделить URL на $u = explode($ulr, '/');: игнорирование $u[0] и рассматривает $u[1] в зависимости от контекста, $u[2] в качестве режима и в конечном итоге $u[3], $u[4]... как пар вар значений, таких как системы ПОЛУЧИТЬ index.php?var=val. Зная контекст и режим, в который входит правильный файл, и все довольны.

  • Как я могу получить url (es: www.mysite.com/user/view/id/123) или только последнюю часть (es: user/view/id/123)?
  • Есть ли у этой системы какие-либо недостатки?
+0

возможный дубликат [Имитировать структуру файла с PHP] (HTTP: // stackoverflow.com/questions/3144976/simulate-file-structure-with-php) – RobertPitt 2010-12-07 18:00:10

ответ

0

Раствор я сделал используется:

.htaccess

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    #Rewrite the URI if there is no file or folder 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ index.php?/$1 [L] 
</IfModule> 

url_manager (только для файлов root: www.mysite.com/index.php; для использования она внутри папки (www.mysite.php/папка/index.php) добавить +1 к каждому числовому ключу и $ я)

function urlFile() 
{ 
    $url = explode('/', $_SERVER["REQUEST_URI"]); 
    $context = $url[1]; 
    $mode = $url[2]; 
    return "{$context}_{$mode}.php"; 
} 

function get($string) 
{ 
    $url = explode('/', $_SERVER["REQUEST_URI"]); 
    unset($url[0], $url[1], $url[2]); 

    $i = 3; 
    foreach ($url as $u) 
    { 
     $get[$url[$i]] = $url[$i + 1]; 
    } 

    return $get[$string]; 
} 
+1

и что делать, если я сделал «www.mysite.php/functions.php% 00», убедитесь, что вы дезинфицируете их включения. - http://ddxhunter.wordpress.com/2010/03/10/lfis-exploitation-techniques/ – RobertPitt 2010-12-07 20:31:21

Смежные вопросы