例:
Route::get('/get', function() {
return 'get';
});
上記のルートを表示するには、public/index.php/getに移動する必要があります。
私はかなりの数のSO投稿を見て、さまざまなことを試してみましたが、違いはありませんでした(はい、Apacheを毎回再起動します))。
パブリックディレクトリにある.htaccessは次のとおりです。
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
</IfModule>
# For all files not found in the file system, reroute the request to the
# "index.php" front controller, keeping the query string intact
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
これはまだ何が原因ですか? Ubuntuを実行しています。
Mod_rewriteがインストールされ、Apacheで有効になっていますか? if行(および)を削除して、Webサイトをロードしようとしたときにエラーがスローされるかどうかを確認してください。存在する場合は、Sudo a2enmod rewrite
を実行してApacheを再起動します。
これは、私のpublic /ディレクトリにある.htaccessです:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
この動作の2つの最も一般的な原因は次のとおりです。
mod_rewriteが有効になっていません
Sudo a2enmod rewrite && Sudo service Apache2 restart
AllowOverride
はNoneに設定され、Apache2.4を想定してAllに設定されます
Sudo nano /etc/Apache2/Apache2.conf
検索する <Directory /var/www/>
および変更AllowOverride None
からAllowOverride All
、ファイルを保存してApacheを再起動します
AllowOverride None
をAllowOverride All
およびSudo a2enmod rewrite && Sudo /etc/init.d/Apache2 reload
に変更すると役立ちました。
MacOで。 .htaccessが機能しない主な問題は、Apache構成のhttpd.confファイルでmod_rewrite.soが有効になっていないことです。行のコメントを外すことでこれを解決しました:
上記の行httpdf.confから#を削除します。その後、動作します。楽しい!
.htaccessファイルを使用しない場合は、リダイレクト用のディレクトリを指定する必要があります。
<IfModule mod_rewrite.c>
RewriteEngine On
<Directory /home/vitela/laravel/public>
RewriteBase /public
RewriteRule ^(.*)/$ /$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php [L,QSA]
</Directory>
</IfModule>
Apache構成ファイルは/ etc/httpd/conf/httpd.confにあります(場所と名前は異なりますサーバー)、次のようにディレクトリを更新して、.htaccessファイルのAllowOverride権限を提供します。
<Directory "/var/www/laravel-sample-project/public">
AllowOverride All
</Directory>
これにより、laravelルートで問題が解決する場合があります。
また、上記のようなディレクトリに限定され、ディレクトリ/ var/www/laravel-sample-project/public(ここで言及されているのは、私のプロジェクトのルートディレクトリであり、あなたによって異なる場合があります)