
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>
내가 도대체 뭘 잘못하고있는 겁니까? 무엇을 확인해야 합니까?
답변1
LoadModule 지시문은 모듈을 동적으로 로드합니다.
RewriteEngine on
가상 호스트에서 발행을 시도한 다음 apachectl -t
날씨를 확인하고 모듈이 실제로 로드되지 않았는지 확인하십시오.
답변2
방금 새로운 Amazon Linux를 시작했는데 동일한 문제가 있었고 Options FollowSymLink
거기에 있었지만 다음 줄을 다음 AllowOverride None
으로 변경해야 했습니다.AllowOverride All
답변3
내 구성은 정확했지만 필요했습니다.
Options FollowSymLink
mod_rewrite가 작동하려면 httpd.conf의 내 DocumentRoot 선언에 있습니다.
답변4
이 문제에 대한 해결책을 얻었습니다.....
구성 파일에서 아래
AllowOverride None
로 변경했습니다 .AllowOverride all
Options Indexes FollowSymLinks
/etc/httpd/conf/httpd.conf
감사해요!