web-dev-qa-db-ja.com

apache2 virtualhost .htaccessファイルが機能しないようです

.htaccessファイルを正しく動作させることができません。

Apache2.confファイルには次のものがあります。

<Directory /home/felix/mysite>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

しかし、これは何も変えません。 Webサイトの別のページにアクセスしようとすると、404エラーが表示されます。

詳細情報の編集:

Ubuntu 16.04

Apache 2.4

サイト内sites-availableにあるmysite.se.confファイルは次のようになっています。

<VirtualHost *:80>    
    ServerAdmin webmaster@localhost
    DocumentRoot /home/felix/mysite
    ServerName mysite.se
    ServerAlias www.mysite.se

    ErrorLog ${Apache_LOG_DIR}/error.log
    CustomLog ${Apache_LOG_DIR}/access.log combined
</VirtualHost>

Apache2.confからこの部分を削除してみました。

<Directory /home/felix/mysite>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

そして今、このメッセージを受け取りましたYou don't have permission to access / on this server. Server unable to read htaccess file, denying access to be safe

その部分を追加し直しても、このメッセージが表示されます。

私が仕事を始めようとしているサイトはワードプレスで構築されています。このサイトのルートフォルダ内には、次のような.htaccessファイルがあります。

# supress php errors
php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off
php_value docref_root 0
php_value docref_ext 0
# End Error

# BEGIN WordPress
<IfModule mod_rewrite.c>
ReewriteEngine On
eRewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

問題は、これらの設定が別のUbuntuマシンで機能することです。そして、サーバー管理者は私のエラーを見つけることができませんでした。それで、彼はおそらくそれがApache2設定のいくつかの欠陥だと言った。しかし、私はそれを見つけることができません、すべてがそうあるべきようです。

これは間違いだと思う: https://www.digitalocean.com/community/questions/wordpress-permalinks-not-working-on-ubuntu-14-04

具体的には、Also make sure your .htaccess file has the proper permissions for WP to write to it. You'll see an error if it doesn't.

適切な許可に変更するにはどうすればよいですか?

解決:

より良い解決策を提供できないことを残念に思います。しかし、私がしたことはSudo a2enmod rewrite、そしてSudo service Apache2 restartだけでした。初めてこれをしたとき、エラー(500サーバーエラーまたは403アクセス許可エラー、覚えていない)がありましたが、今朝もう一度試してみましたが、うまくいきました。したがって、私のファイルは上記のように見えます。

2
Felix Rosén

mysite.se.confを編集してみてください:

<VirtualHost *:80>    
    ServerAdmin webmaster@localhost
    DocumentRoot /home/felix/job/fello
    ServerName test.fello.se
    ServerAlias www.test.fello.se
    ErrorLog ${Apache_LOG_DIR}/error.log
    CustomLog ${Apache_LOG_DIR}/access.log combined
    <Directory "/home/felix/job/fello">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

そして、あなたのサイトへのパスを確認してください/home/felix/mysiteまたは/home/felix/job/fello

2
tagplus5