Как заставить весь REQUEST_URI перейти к параметру - PullRequest
1 голос
/ 08 октября 2009

Я использую Apache rewrite_mod, чтобы все тесты после URL-адреса переходили в текст параметра, используя в файле .htaccess следующее

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?text=$1 [L,QSA]

, который работает, если у меня есть www.example.com/some_text но не когда у меня www.example.com/some_text/some other text

Я хочу иметь в текстовом параметре весь запрос: "some_text / some other text" не только «какой-то другой текст».

Можно ли это сделать?

Ответы [ 3 ]

2 голосов
/ 08 октября 2009

Я бы позволил apache / php разобраться в этом:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L]

PHP хранит всю необходимую информацию в $ _SERVER

$_SERVER['REQUEST_URI']   // Original uri with original query string
$_SERVER['REDIRECT_QUERY_STRING'] // Original query string
$_SERVER['REDIRECT_URL']  // Original uri without query string

Этот метод оставит $ _GET / $ _POST / $ _REQUEST и т.д.

0 голосов
/ 08 октября 2009

$_SERVER['QUERY_STRING'] будет содержать строку запроса.

0 голосов
/ 08 октября 2009

Я использую это, и он отлично работает:

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php/$0 [PT,L]
...