11

私の問題は.htaccess、ローカルサーバー上のファイルが読み取られていないことです。VirtualHostファイル内の設定が常に優先されるようです。

私は以下を試しました:

  • 有効mod_rewrite
  • に変更しAllowOverrideましたAllが、これによりHTTP Error 500 Internal server error。さまざまなオプションで試しましたが、常に500エラーが発生します。

次のようなUbuntuでVirtualHostファイルを使用しています。

<VirtualHost *:80>
ServerAdmin webmaster@localhost

DocumentRoot /web/website
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
<Directory /web/website>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
</Directory>
</VirtualHost>

私の.htaccessファイル/web/websiteには、次のルールがあります(これらは読み取られていません)。

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/$1 [L]
RewriteCond %{HTTP_USER_AGENT} ^facebookexternalhit
RewriteRule ^(.*)$ ogtags.php?$1 [L,QSA]
ErrorDocument 404 /404
ErrorDocument 401 /401

うまくいったことの1つは、これらのルールをVirtualHostファイルに直接追加することでしたが、ファイルを機能させたいと思い.htaccessます。それはそんなに大きな質問ですか?:(

編集:それで私は私のapacheを調べました、error.logそしてそれはInvalid command 'Action', perhaps misspelled or defined by a module not included in the server configuration私のファイルを参照していると言い.htaccessます。有効にできるActionというモジュールがないようです。何か案は?

編集2:httpd.confファイルが空白であることに気づきました。私はVirtualHostファイルを使用しているので、これは重要ですか?

4

2 に答える 2

6

私のapacheを見た後、私はApacheモジュールerror.logを有効にする必要があることに気づきました。actions

sudoa2enmodアクション

そして、500の内部サーバーエラーはもうありません!

これが誰かの助けになることを願っています:)

于 2013-01-23T13:47:32.900 に答える
1

RewriteBase / あなたは指令を逃します

RewriteEngineディレクティブ の後に追加します:

RewriteEngine On
RewriteBase /
于 2013-01-19T23:10:54.120 に答える