Intereting Posts
php одновременная загрузка файлов из одного браузера и одного и того же сценария php Справка по рекурсии PHP, необходимая для создания древовидной структуры Как вызвать конструктор с помощью call_user_func_array в PHP Предупреждение: mysql_error (): предоставленный аргумент не является допустимым ресурсом MySQL-Link проверьте, является ли значение из цикла foreach в массиве Неустранимая ошибка – класс «Монго» не найден Элемент массива доступа, индексированный с помощью числовой строки Как лучше передать сообщение пользователю между страницами Посещение базы данных – вставка нескольких записей в один запрос MySQL GROUP_CONCAT: форматирование вывода PHP 7, Symfony 3: Fatal error 1 абстрактный метод и поэтому должен быть объявлен абстрактным или реализовать остальные методы Загрузка файла с помощью XMLHttprequest – Отсутствует граница в multipart / form-data Как работать с аргументами бесконечности в функции (например, isset () PHP) Ошибка синтаксиса с MySQL Query Корпус Fosrestbundle пуст при многократном запросе

Модульные ссылки Mod_rewrite

Я пытаюсь отобразить мои переменные get как плоские ссылки. Хотите изменить это:

http://mydomain.com/index.php?page=shop&var1=hat&var2=10 

в

 http://mydomain.com/index.php/shop/hat/10 

Имейте в виду, что нет фиксированного количества переменных, поэтому я использую var1, var2, … и т. Д.

[edit] У меня уже есть частично рабочий скрипт, но работает только с max 3 переменными

 RewriteCond %{ENV:REDIRECT_STATUS} 200 RewriteRule .* - [L] RewriteRule ^([^/\.]+)/?$ index.php?page=$1 [L] RewriteRule ^([^/\.]+)/?([^/\.]+)/?$ index.php?page=$1&var=$2 [L] RewriteRule ^([^/\.]+)/?([^/\.]+)/?([^/\.]+)/?$ index.php?page=$1&var=$2&var2=$3 [L] RewriteRule ^([^/\.]+)/?([^/\.]+)/?([^/\.]+)/?$ index.php?page=$1&var=$2&var2=$3&var3=$4 [L] 

Related of "Модульные ссылки Mod_rewrite"

Итак, сначала помните, что mod_rewrite работает следующим образом:

 http://mydomain.com/index.php/shop/hat/10 

(тип клиента) переписывается на

 http://mydomain.com/index.php?page=shop&var1=hat&var2=10 

(то, что клиент обслуживается), но не обязательно отображается как последний. (Если вы не сделаете его перенаправлением)

Итак, предполагая, что ваш формат полностью описан здесь:

 RewriteRule ^index\.php/([^/]+)/([^/]+)/([0-9]+)$ /index.php?page=$1&var2=$2&var2=$3 

Должно быть хорошо.

РЕДАКТИРОВАТЬ:

О, БТВ! Я не учитывал переменное число переменных. Думаю, это не должно обрабатываться mod_rewrite. Возможно, лучший снимок – RewriteRule index.php/(.*) /index.php?call=$1 а затем используйте ваш скрипт для взрыва с использованием / разделителем.

Вы можете сделать это только в том случае, если уже знаете число переменных только AFAIK.

Вы можете просто направлять весь запрос непосредственно на index.php (называемый bootstrapping), и пусть сценарий анализирует переменные.

Вот как это делается с Zend Framework , вы должны взглянуть на него. ZF также имеет множество других полезных свойств, которые вы могли бы использовать.

Это мой блок перезаписи с одного из моих vhosts с веб-сайтом с ZF.

  RewriteCond %{REQUEST_FILENAME} !-l RewriteCond %{REQUEST_FILENAME} !-s RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !^/favicon.ico RewriteRule ^.*$ index.php [NC,L]