2016-04-25 4 views
1

Slim 3を使用して、私のホームページURLをの代わりにwww.domain.comにします。スリムフレームワーク:後続スラッシュを使用しないホームページルーティング

このルーティングはwww.domain.com/

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

}); 

にすべてのホーム要求をリダイレクトします。しかし、この1は私にエラーを与えます。

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

}); 

私は標準の.htaccessを使用しています:

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

私はこれが一般的な問題だと思います。これに最善の回避策は何ですか?

編集:

トリックや回避策ホームページのURLは、それがアドレスバーにスラッシュを付けずにいるように見えたように、とは何ですか?

+0

これはよくある問題ではありません。ドメインの後の最初の末尾のスラッシュは*常に*必要であり、結果の要求は常に同じです。 –

+0

多くのウェブサイトがあり、彼らのホームページは末尾にスラッシュを使用していません。 StackOverflow自体が例の1つです。 –

+1

いいえ、ブラウザは表示しないことを選択できますが、表示されます。 *常に*リクエストURIの最初の文字です。ドメインの一部ではありません。 –

答えて

3

最初の/はHTTP仕様で必要です。あなたはFirefoxでhttps://stackoverflow.comに行き、実際に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に指定されているように、絶対パスは空にすることはできません。元のURIに何も存在しない場合は、 "/"(サーバールート)として指定する必要があります。

関連する問題