2016-04-25 1 views
1

Используя Slim 3, я хочу, чтобы мой URL-адрес страницы был www.domain.com вместо www.domain.com/.Slim Framework: Домашняя страница Маршрутизация без трейлинг-косая черта

Этот маршрут будет перенаправить запрос все домой в www.domain.com/

$app->get('/', function ($request, $response, $args) { 

}); 

Но это одна дает мне ошибку.

$app->get('', function ($request, $response, $args) { 

}); 

Я использую стандартный .htaccess:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule^index.php [QSA,L] 

Я думаю, что это общая проблема. Какое лучшее обходное решение для этого?

Edit:

Что такое трюк или обходной путь, так что URL главной страницы смотрел, как она есть без пробелов в адресной строке?

+0

Это не распространенная проблема. Первая конечная косая черта после домена * всегда * требуется, и полученный запрос всегда идентичен. –

+0

Есть много сайтов, их домашняя страница не использует конечную косую черту. Сам StackOverflow является одним из примеров. –

+1

Нет, ваш браузер может не показывать его, но он есть. Это всегда * первый символ URI запроса. Это не часть домена. –

ответ

3

Первый / требуется по спецификации HTTP. Если вы идете в https://stackoverflow.com в Firefox и проверять заголовки фактически отправленные с помощью LiveHTTPHeaders, вы увидите следующее:

 
GET/HTTP/1.1 
Host: stackoverflow.com 
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0) Gecko/20100101 Firefox/45.0 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language: en-GB,en;q=0.5 
Accept-Encoding: gzip, deflate 
DNT: 1 
Cookie: prov=6c390324-a9bb-439b-872e-ab428c1c136d; __cfduid=dd9fcf26e8242833656cda6fbe7719d851450684069; _ga=GA1.2.1110081223.1450684070 
Connection: keep-alive 

Как вы можете видеть из строки запроса (GET/HTTP/1.1), начальная / автоматически добавляется для вас в браузере как указано в разделе 5.2.1 от RFC2616, где говорится:

Обратите внимание, что абсолютный путь не может быть пустым; если в исходном URI нет, оно ДОЛЖНО указываться как «/» (корень сервера).

 Смежные вопросы

  • Нет связанных вопросов^_^