2015-07-07 3 views

ответ

2

Ваш rewriteRule назад в том, что вы должны совпадать слева, что вы хотите, чтобы чистый URL-адрес выглядел и переписывал справа, где находится файл на сервере. Но даже если бы он не был обратным, вам пришлось бы избежать символа вопроса в RegExp. Но так как в обратном направлении, вы должны использовать что-то ближе к:

RewriteEngine on 
RewriteRule ^test/(.*) test.php?t=$1 [L] 
1

Try:

RewriteEngine On 
RewriteCond %{THE_REQUEST} /test.php\?t=([^&\s]+) [NC] 
RewriteRule ^test.php$ /test/%1? [NC,R,L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^test/([^/]+)/?$ /test.php?t=$1 [QSA,L,NC] 

Строка запроса не является частью матча в директиве правил переписывания, используйте% {QUERY_STRING} или% { THE_REQUEST} для сопоставления с строкой запроса.