Vista 컴퓨터에 Apache 2.2를 새로 설치했는데 mod rewrite를 제외한 모든 것이 제대로 작동합니다.
나는 주석을 해제했습니다
LoadModule rewrite_module modules/mod_rewrite.s
하지만 내 재 작성 규칙 중 어느 것도 작동하지 않습니다.
RewriteRule not_found %{DOCUMENT_ROOT}/index.php?page=404
내가 사용하는 모든 규칙이 호스팅에서 작동하고 있으므로 확인해야합니다. 제 질문은 아파치 구성에 숨겨진 항목이 있습니까? 모드 재 작성을 차단할 수 있습니까?
답변
사용 mod_rewrite
하려면 터미널에 다음 명령을 입력하십시오.
sudo a2enmod rewrite
다음에 apache2를 다시 시작하십시오.
sudo /etc/init.d/apache2 restart
또는
sudo service apache2 restart
또는 새로운 통합 시스템 제어 방식에 따라
sudo systemctl restart apache2
그런 다음 원하는 경우 다음 .htaccess
파일을 사용할 수 있습니다 .
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
위 .htaccess
파일 (에 배치 된 경우 DocumentRoot
)은 파일이 존재하지 않는 한 모든 트래픽을 index.php
파일로 리디렉션 DocumentRoot
합니다.
따라서 다음 디렉토리 구조가 있고 httpdocs는 DocumentRoot
httpdocs/
.htaccess
index.php
images/
hello.png
js/
jquery.js
css/
style.css
includes/
app/
app.php
httpdocs에 존재하는 모든 파일은 .htaccess
위 의 그림을 사용하여 요청자에게 제공 되지만 다른 모든 파일은로 리디렉션됩니다 httpdocs/index.php
. 의 응용 프로그램 파일에 includes/app
액세스 할 수 없습니다.
답변
내 상황에는
RewriteEngine On
내 .htaccess
모듈에서로드 된 모듈과 함께 작동하지 않습니다.
내 문제에 대한 해결책은 vhost 항목을 편집하여 inlcude하는 것입니다.
AllowOverride all
에서 <Directory>
해당 사이트에 대한 섹션을 참조하십시오.
답변
설정을 시도하십시오 : AllowOverride All
.
두 번째로 가장 일반적인 문제는 mod rewrite를 활성화하지 않은 것 a2enmod rewrite
입니다.
답변
위의 방법으로 작동하지 않으면 / etc / apache2 / sites-enabled / 000-default를 편집하십시오.
거의 당신이 찾을 수있는 상단에
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
변화 AllowOverride None
에를AllowOverride All
이것은 나를 위해 일했다
답변
우분투에서 :
운영:
a2enmod rewrite
그리고:
service apache2 restart
mod_rewrite
이제 활성화됩니다!
답변
문제의 근본을 알고있는 경우이 문제를 해결하는 방법에는 여러 가지가 있습니다.
문제 1
첫째, mod_rewrite.c 모듈이 설치 또는 활성화되어 있지 않은 아파치에 문제가있을 수 있습니다.
이러한 이유로 다음과 같이 활성화해야합니다.
-
콘솔을 열고 입력하십시오 :
sudo a2enmod rewrite
-
아파치 서버를 다시 시작하십시오.
service apache2 restart
문제 2
-
위의 작업 외에도 작동하지 않으면 apache conf 파일 (apache2.conf, http.conf 또는 000-default 파일)에서 재정의 규칙을 변경해야 할 수도 있습니다.
-
“Directory / var / www /”를 찾으십시오.
-
“Override None”을 “Override All”로 변경하십시오.
문제 3
다시 쓰기 모듈을 찾을 수 없다는 오류가 표시되면 userdir 모듈이 활성화되지 않은 것입니다. 이러한 이유로 활성화해야합니다.
-
이것을 콘솔에 입력하십시오 :
sudo a2enmod userdir
-
그런 다음 위에서 언급 한대로 여전히 활성화되지 않은 경우 다시 쓰기 모듈을 활성화하십시오.
이에 대한 자세한 내용을 보려면 다음 사이트를 방문하십시오 : http://seventhsoulmountain.blogspot.com/2014/02/wordpress-permalink-ubuntu-problem-solutions.html
답변
새로운 아파치 버전은 어떤 식 으로든 변경되었습니다. 아파치 버전이 2.4 인 경우로 가야합니다 /etc/apache2/
. 라는 파일이 있습니다 apache2.conf
. 이 파일을 편집해야합니다 (루트 권한이 있어야 함). 이와 같은 디렉토리 텍스트 변경
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
이제 아파치를 다시 시작하십시오.
service apache2 reload
그것이 효과가 있기를 바랍니다.