У меня есть много сайтов на моем веб-сервере.Перенаправить точно нулевую строку запроса
Я просто хочу, чтобы перенаправить все мои сайты, когда URL именно /?
Например:
www.example1.com/?
www.example2.com/?
но не как www.example.com/x.php?
, www.example.com/
или что-нибудь остальное.
Я пробовал много вещей, но не удалось:
RewriteCond %{QUERY_STRING} ^$
RewriteRule^%{REQUEST_URI}?_test [L,R=302]
RewriteCond %{QUERY_STRING} ^\?$
RewriteRule^http://www.example.com [L,R=301]
RewriteCond %{REQUEST_URI} =="/?"
RewriteRule ^(.*)$ http://www.example.com/ [L,R=301]
RewriteEngine На RewriteCond% {REQUEST_URI} = "/" RewriteRule^(. *) $ Http://www.example.com/$1 [L, R = 301] это сработало для меня sagolasin kardesim –
@Huseyin '^ \? $' - это никогда не будет соответствовать в 'RewriteRule' _pattern_, поскольку литерал'? '(Вопросительный знак) не является частью URL-пути, с которым соответствует' RewriteRule' _pattern_. Соответствующий URL-путь исключает строку запроса, включая префикс '?'. – MrWhite
@ MustafaMarsliTopaloğlu Если '?' Является буквальным вопросительным знаком в запросе, то '% {REQUEST_URI} =" /? "' Никогда не будет совпадать?Переменная сервера 'REQUEST_URI' Apache не включает символ'? '- означающий начало строки запроса. Чтобы соответствовать запросу для пустой строки запроса (например, '/?'), Вам нужно будет сопоставлять с 'THE_REQUEST'. – MrWhite