web-dev-qa-db-ja.com

PHPプロジェクトで.htaccessを使用してURLをクリーンアップする問題

私は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 NoneAllowOverride 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日間この問題を解決しようとしていますが、まだ解決していません。

2
x4ph4r

/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ファイルでAllowoverrideNoneとして設定します。

1
Nilabh

.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

このコードがどのように機能するかを理解してください。

1
Hassan Althaf

403 Forbiddenこのサーバーの/ contactsにアクセスする権限がありません

フォルダのユーザー、ユーザー名、およびサイトがchmod 755であることを確認します

chmod -R 755 /home
1
Simon Hayter