Intereting Posts

Поверните текст после слэшей в переменные с помощью HTACCESS

Мне нужно передать 3 переменные с URL-адресом, но с помощью косой черты. Так, например, я бы использовал этот URL:

http://www.example.com/variable1/variable2/variable3

У меня есть это в моем HTACCESS, который позволяет текст после передачи первой переменной, но я не могу получить другие два, чтобы пройти, даже если я добавлю & $ 2

<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule /?([A-Za-z0-9_-]+)/?$ process.php?width=$1&height=$2 [QSA,L] 

Любые ссылки или помощь были бы замечательными

Вы только фиксируете одну переменную в своем правиле перезаписи.

Вам нужно что-то вроде:

 RewriteRule ^([A-Za-z0-9_-]+)/([A-Za-z0-9_-]+)/([A-Za-z0-9_-]+)/?$ process.php?width=$1&height=$2&third=$3 [QSA,L] 

или, немного короче:

 RewriteRule ^([\w-]+)/([\w-]+)/([\w-]+)/?$ process.php?width=$1&height=$2&third=$3 [QSA,L] 

(символ слова \w содержит буквы, цифры и символы подчеркивания)

Я сделал необязательно только конечную косую черту, поэтому это правило перезаписи будет делать только что-то, если имеется ровно 3 переменных.

Вам может быть легче получить параметры в файле .php, используя:

 $pathinfo = isset($_SERVER['PATH_INFO']) ? $_SERVER['PATH_INFO'] : $_SERVER['REDIRECT_URL']; $params = preg_split('|/|', $pathinfo, -1, PREG_SPLIT_NO_EMPTY); echo "<pre>"; print_r($params); 

Поэтому вызов сценария:

http://www.example.com/variable1/variable2/variable3

вернется:

 Array ( [0] => variable1 [1] => variable2 [2] => variable3 ) 

Это будет работать для обоих:

http://www.example.com/variable1/variable2/variable3 и http://www.example.com/process.php/variable1/variable2/variable3