Использовать переписать URL-адреса, такие как array.htaccess


" можно использовать переписан .htaccess и неопределенное число параметров в URL?

В моем .htaccess текущий я определил три типа параметров, которые могут быть переданы в URL (/page/sub/id), но я хотел бы передать неограниченное число параметров, и они следовали за заказ, как в виде массива,(/1/2/3/4/...), это возможно?

Моя .htaccess текущий:

Options -Indexes
RewriteEngine On

RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^([^/]*)$ index.php?page=$1 [L]

RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^([^/]*)/([^/]*)$ index.php?page=$1&sub=$2 [L]

RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^([^/]*)/([^/]*)/([^/]*)$ index.php?page=$1&sub=$2&id=$3 [L]

Сомнений: это можно сделать без того, чтобы заняться каким-то "образом альтернативой" с помощью explode(), например?

Author: Rafael Alexandre, 2014-11-03

2 answers

Возможный выход, чтобы все адреса, на тот же PHP:

Options -Indexes
RewriteEngine On

RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

И в этом PHP, разделить и обработать пути, в зависимости от необходимости:

<?php

   $caminho = $_SERVER["PATH_INFO"];
   $pastas = explode( '/', $caminho );

   // demonstracapo
   print_r( $pastas );

?>

Если вы предпочитаете торговать index.php/$1 , index.php?$1 или подобные, тоже дает, но путь придет на место QUERY_STRING.

Лично Я предпочитаю панель, ибо там параметров - $_GET[] будут работать в обычном режиме.

EDIT: поскольку OP предпочитает решение, чистым .htaccess, собираюсь оставить это только для справки кто имеет интерес в использовании этого пути.

, Отметив, что это решение работает, в том числе для тех, кто не имеет перемешать .htaccess, просто по PHP в path следующим образом:

example.com/api.php/barcode/289163753
 4
Author: Bacco, 2014-11-03 20:23:45

Вариант, который вы можете сделать, - это установить .htaccess следующим образом.

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1

, Где он будет передан в файл index.php в параметре url

index.php извлекается следующим образом:

$url = explode('/', $_GET['url']);

И ai отвечает твой установить порядок, кто есть кто. Ex.:

$url[0]//controller
$url[1]//action
$url[2]//parametro1
$url[3]//parametro3
 0
Author: Michael Fillip, 2014-11-03 20:24:19