Использовать переписать 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()
, например?
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
Вариант, который вы можете сделать, - это установить .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