.htaccess захватывает весь путь

#.htaccess #url-rewriting #friendly-url

#.htaccess #перезапись url #дружественный url

Вопрос:

я экспериментирую с методом для красивых URL-адресов, который я раньше не пробовал, где htaccess просто выделяет весь путь после корня и передает его как единственную переменную, затем я разбью его на конкретные переменные, используя php explode, но я застрял на ранней стадии.

Я использую эту строку, чтобы захватить все в URL после «blah.com » —

 RewriteRule ^(.*)$  index.php?url=$1 [NC]
  

затем в php используйте эту строку, чтобы превратить ее в переменную

 $url = $_GET['url'];
  

но когда я тестирую его с поддельным путем, например «blah.com/test/test2 » $ url повторяется как «index.php «вместо «test / test2»

я ненавижу работать с htaccess, что является одной из причин, по которой я пытаюсь использовать этот метод, поэтому я не уверен, что мне нужно сделать, чтобы исправить это. любая помощь была бы … очень полезной!

Ответ №1:

Не беспокойтесь о переменных GET, просто проверяйте $_SERVER['REQUEST_URI'] , бесконечно проще 🙂

Комментарии:

1. итак, что-то вроде…. RewriteRule ^(.*)$ index.php [NC] и $url = $_SERVER[‘REQUEST_URI’]; ?

2. Действительно, в этом и заключается идея. Возможно, захочется добавить RewriteCond %{REQUEST_FILENAME} !-f перед правилом, чтобы предотвратить перенаправление, когда файл существует.