1

このドキュメントルートが/var/www/exampleあり、このディレクトリ内にファイルtest.phpがあり、他のプロジェクトもあるため、プロジェクトの構造は次のようになります

/var/www/例

├── .htaccess (Obs)
├── classes  
├── config
├── controllers
├── public
│   ├── admin
│   │   └── index.php 
│   ├── css
│   ├── index.php
│   └── js
├── test.php (Obs! not managed by .htaccess)
└── views

.htaccess

Options +FollowSymLinks
AddDefaultCharset UTF-8 
RewriteEngine On

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f

RewriteRule ^admin[/]?$ /example/admin/login [redirect]
RewriteRule ^admin/([a-zA-Z]+)/?([a-zA-Z0-9/]*)$ public/admin/index.php?page=$1&query=$2 [L]
RewriteRule ^([a-zA-Z]+)/?([a-zA-Z0-9/]*)$ public/index.php?page=$1&query=$2 [L]

最近、プロジェクトを localhost で実行されている MAMP サーバーからドメイン駆動型サーバーに移動しました。私が試してみると

test.php

ファイルは意図したとおりに機能しますecho "It works"が、サイトを実行しようとすると機能しません。

エラーログ

 [Mon Jul 29 18:02:52 2013] [error] [client 83.248.93.217] script '/var/www/example/index.php' not found or unable to stat
 [Mon Jul 29 18:02:52 2013] [error] [client 83.248.93.217] File does not exist:     /var/www/favicon.ico
 [Mon Jul 29 18:03:02 2013] [error] [client 83.248.93.217] File does not exist: /var/www/example/bordsoversikt
 [Mon Jul 29 18:03:02 2013] [error] [client 83.248.93.217] File does not exist: /var/www/favicon.ico

私のコントローラーは、いくつかのサイトを名前で対応するファイルにマップします

client_routerのすべての呼び出しの内容は、index.php を経由htaccessしてルーターに送信されます...

public function initialize_routes() {
$this->routes = array(
    "bordsoversikt" => "page_table_overview",
    "bordsreservation" => "page_table_reservation",
    "reservationsprocess" => "script_reserve_form",
    "registrering" => "page_registration",
    "registreringsprocess" => "script_register_form",
    "lyckadregistrering" => "page_successfull_signup",
    "login" => "page_login",
    "logout" => "script_logout",
    "profil" => "page_home", 
    "klientlogin" => "script_login",
    "profil" => "page_profile",
    "sparaprofil" => "script_edit_profile_changes"
);

htaccess ファイルに問題があるか、コンテンツを投稿した理由、またはファイルに問題がある可能性があると思いapache2.configます。しかし、私はApacheの構成についてはまったく新しいので、おそらく重要でない部分を投稿するので、その一部を投稿しようとはしません。誰か助けてください。ありがとう

4

1 に答える 1

1
  1. htaccess ファイルが apache で読み取り可能であることを確認してください (例: Linux の場合chmod 644 /var/www/example/.htaccess) 。

  2. 仮想ホストまたはサーバー構成でオーバーライドが許可されていることを確認してください。

    AllowOverride FileInfo
    

    またはさらに良い

    AllowOverride All        
    
  3. 可能性は低いですが、サーバー/仮想ホスト構成ファイルを調べて、というコマンドを探しますAccessFilename。これは通常、デフォルトで.htaccessですが、何か違う場合は、.htaccess に変更するかファイルの名前をディレクティブが示すものに変更する必要があります。

于 2013-07-29T17:38:19.750 に答える