.htaccess в родительский каталог - PullRequest
0 голосов
/ 11 марта 2020

Я пытаюсь переслать / test / 12 для проверки? Var = 12 с помощью htaccess

Я настроил файл .htaccess следующим образом:

RewriteEngine on
RewriteRule ^test/(.+)$ test?$1 [L]

Может кто-нибудь указать мне в правильном направлении?

Спасибо

Ответы [ 2 ]

1 голос
/ 11 марта 2020
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f  
RewriteCond %{REQUEST_FILENAME} !-d  
RewriteRule ^test/([a-zA-Z0-9|]+)/([^/]*)/(.*)$ test.php?var1=$1&var2=$2&var3=$3 [B,QSA]

[^/] означает «любой символ, который не является sla sh». Естественно, это означает, что «текст» не может содержать косые черты, но ваш URL будет соответствовать правильно.

Также обратите внимание на [B], который является одним из многих параметров, которые вы можете добавить в правило перезаписи. [B] означает, что любые & s и некоторые другие символы будут экранированы.

теперь в вашем test.php

print_r($_GET);

будет выводиться для URL http://localhost/test/123/456/asdf:

Array
(
    [var1] => 123
    [var2] => 456
    [var3] => asdf
)
0 голосов
/ 13 марта 2020

Моя ошибка заключалась в добавлении .htaccess в неправильный каталог. Я должен был добавить его в родительский каталог, но я добавлял ^test/(.+)$ test?$1 в каталог test.

Я хотел получить полный запрос после завершающего sla sh в URL, поэтому Правило, которое я использовал в родительском каталоге, было RewriteRule ^(.*)$ test.php?$1. Это, в свою очередь, привело к циклическому l oop, поэтому я перенаправил в каталог внутри родителя, чтобы окончательное рабочее правило, которое брало последнюю часть строки URL после / и пересылало ее как переменную в test.php?$1, выглядело как this.

RewriteRule ^ (. *) $ test / test. php? $ 1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...