ПОЛУЧИТЬ метод в php clean URL
Я успешно создал чистый URL для моего проекта... теперь мне нужно добавить переменные в URL..
localhost/user1/file?action=add
localhost/user2/file2?action=delete
где пользователь и файл уже переписаны, я не хочу, чтобы это было похоже localhost/user/file/add
так как localhost/user/folder/file
будет ошибочно принят за параметр действия.. помогите пожалуйста
3 ответа
Попробуйте использовать амперсанд вместо вопросительного знака:
localhost/user2/file2&action=delete
В вашем htaccess правило перезаписи может выглядеть примерно так:
RewriteRule ^user([0-9]+)/file([0-9]+)$ /page\.php?user=$1&file=$2
Как видите, вопросительный знак уже есть, хотя он замаскирован в адресной строке. Добавление другой переменной к строке запроса потребует амперсанда для успешной конкатенации.
Вам нужно получить URL-адрес и начать анализ URL-адреса со знака вопроса. Затем я бы сохранил содержимое в массив, чтобы у вас был ключ и значение.
$uri = $_SERVER["REQUEST_URI"];
$questionMark = explode('?',$uri);
$ questionMark [1] - это действие = удалить тогда. Возможно, есть более эффективные способы, чем использование метода explode(), но я просто хотел показать, как вы получаете строку.
Вы можете прочитать переменные GET в PHP, обратившись к глобальному массиву $_GET:
http://php.net/manual/en/reserved.variables.get.php
В вашем примере файл php, который используется для обработки файлов, сможет читать:
echo $_GET['action']; // 'add' or 'delete'