私はPHP laravelプロジェクトに取り組んでいます。現在、。htaccessファイルの問題に直面しています。私は次を持っています。htaccess:
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
ページをリロードすると、次のエラーが表示されました。
404 Not Found
The requested URL /contacts was not found on this server.
次に、次のコード行がある/etc/Apache2/users/username.conf
ファイルを開きました。
<Directory "/Users/username/Sites/">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
上記のコードでは、AllowOverride None
をAllowOverride All
に変更しました。次に、ページをリロードし、次のエラーが発生しました:
403 Forbidden
You don't have permission to access /contacts on this server.
FollowSymLinks
を。htaccess file Options
に追加すると、このようなOptions -MultiViews FollowSymLinks
のようになります。その後、時々これを取得します500 Internal Server Error error and sometime this * Error 324(net :: ERR_EMPTY_RESPONSE):サーバーはデータを送信せずに接続を閉じました*。 FollowSymLinks
オプションを使用して、これらのエラーの1つをページにリロードするたびに。
/etc/Apache2/httpd.conf
の次の行もコメント解除します。
LoadModule rewrite_module libexec/Apache2/mod_rewrite.so
LoadModule php5_module libexec/Apache2/libphp5.so
それでも、同じ許可拒否エラーが表示されます。
過去3日間この問題を解決しようとしていますが、まだ解決していません。
/contacts
が存在するかどうかを確認してください755のフォルダーアクセス許可。/contacts
の下のファイルには644のアクセス許可が必要です。
また、現在の。htaccessファイルの名前を変更し、次のコードで新しい。htaccessファイルを作成します。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
また、。confファイルでAllowoverride
をNone
として設定します。
.php
拡張を削除したいと思うので、それを実現するために。htaccessコードを付けます:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
ルートディレクトリに配置する必要があります。
そのため、ルートフォルダーにindex.phpという名前のファイルがあると仮定すると、site/indexでアクセスできます。 contactというフォルダーがあり、その中にcontactnowというファイルが含まれている場合は、次の場所からアクセスできます。site/contact/contactnow
このコードがどのように機能するかを理解してください。
403 Forbiddenこのサーバーの/ contactsにアクセスする権限がありません
フォルダのユーザー、ユーザー名、およびサイトがchmod 755であることを確認します
chmod -R 755 /home