Amazon Linuxインスタンスでmod_rewriteを有効にしようとしています。私のディレクトリディレクティブは次のようになります。
<Directory />
Order deny,allow
Allow from all
Options None
AllowOverride None
</Directory>
<Directory "/var/www/vhosts">
Order allow,deny
Allow from all
Options None
AllowOverride All
</Directory>
そして、httpd.confのさらに下には、LoadModule
ディレクティブがあります。
... other modules...
#LoadModule substitute_module modules/mod_substitute.so
LoadModule rewrite_module modules/mod_rewrite.so
#LoadModule proxy_module modules/mod_proxy.so
... other modules...
Wordpressが必要としないすべてのApacheモジュールをコメントアウトしました。
それでもhttp restartを発行してから、ロードされたモジュールを/usr/sbin/httpd -l
で確認すると、次の情報しか得られません。
[root@foobar]# /usr/sbin/httpd -l
Compiled in modules:
core.c
prefork.c
http_core.c
mod_so.c
Wordpressサイトを含む仮想ホストの内部には、.htaccess
を含む:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
.htaccessは、Apacheが所有するApacheが所有しています。 apachectl -t
コマンドはSyntax OK
を返します
私の/etc/httpd/conf.d/vhosts.conf
は次のようになります:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName foobar.net
ServerAlias www.foobar.net
DocumentRoot /var/www/vhosts/foobar/
ErrorLog /var/www/vhosts/foobar/logs/error.log
CustomLog /var/www/vhosts/foobar/logs/access.log combined
</VirtualHost>
何が悪いのですか?何をチェックすればよいですか?
私の構成は正しかったが、私は必要でした
Options FollowSymLink
mod_rewriteが機能するためのhttpd.confのDocumentRootの宣言.
LoadModuleディレクティブはモジュールを動的にロードします。
仮想ホストでRewriteEngine on
を発行し、その後にapachectl -t
を発行して、天気がモジュールに実際にロードされているかどうかを確認してください。
私は新しいAmazon Linuxを開始したばかりで、同じ問題があり、Options FollowSymLink
がありましたが、次の行AllowOverride None
をAllowOverride All
に変更する必要がありました
私はこの問題の解決策を得ました.....
私は変わった AllowOverride None
からAllowOverride all
、 未満 Options Indexes FollowSymLinks
設定ファイル/etc/httpd/conf/httpd.conf
ありがとう!