最近Laravel
の学習を始めましたが、フレームワークの経験はありません。次の問題が発生しています。。htaccessファイルを設定しようとしているので、きれいなURLs
を取得できますが、取得できるのは404 Not Found
エラーページだけです。仮想ホストを作成しました-構成ファイルの下に表示されます-パブリックディレクトリの.htaccesss file
を変更しました。
/etc/Apache2/sites-available
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName laravel.lar
DocumentRoot "/home/giannis/Desktop/laravel/public"
<Directory "/home/giannis/Desktop/laravel/public">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${Apache_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${Apache_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
。htaccesssファイル:
laravel/public
# Apache configuration file
# http://httpd.Apache.org/docs/current/mod/quickreference.html
# Note: ".htaccess" files are an overhead for each request. This logic should
# be placed in your Apache config whenever possible.
# http://httpd.Apache.org/docs/current/howto/htaccess.html
# Turning on the rewrite engine is necessary for the following rules and
# features. "+FollowSymLinks" must be enabled for this to work symbolically.
<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>
それをテストするために、about
という名前のビューを作成し、適切なルーティングを作成しました。 http://laravel.lar/index.php/about/
にリンクする場合、http://laravel.lar/about/
にリンクする場合は、代わりにabout
ページにルーティングします。404 Not Found
エラーが発生します。
Debianベースのシステムを使用しています。
私はあなたの問題を見ていると思います。書き換えルールに追加の疑問符を追加しています。
RewriteRule ^(.*)$ index.php?/$1 [L]
あるべき
RewriteRule ^(.*)$ index.php/$1 [L]
提供するURLの例に基づきます。 http://laravel.lar/index.php/about/
の後にindex.php
の後に疑問符がありません
Mod_rewriteが有効になっていない可能性もあります。あなたはUbuntuのようなDebianベースのシステムのようです。コマンドSudo a2enmod rewrite
を使用してmod_rewriteを有効にできます。
今日も同じ問題に出会いました。 2段階で解決しました
書き換えモジュールの有効化
Sudo a2enmod rewrite
仮想ホスト構成ファイルでAllowOverride None
をAllowOverride All
に変更しました。 AllowOverride None
-Apacheサーバーがサイトディレクトリにある.htaccessファイルを読み取れないようにします。
それが役に立てば幸い。