2013-05-09 4 views
1

간단한 .htaccess 다시 쓰기 규칙을 작동 시키려고하는데, 문제가 해결되지 않았습니다. .htaccess mod_rewrite 규칙을 작동시킬 수 없습니다. - 404를 찾을 수 없습니다.

RewriteEngine On 
RewriteRule ^api$ phpinfo.php 
ErrorDocument 404 /error.php 

php_flag display_errors     on 
php_flag display_startup_errors   on 
php_flag file_uploads     on 
php_value error_reporting     2047 
php_value max_input_time     60 
php_value post_max_size     8M 
php_value upload_max_filesize    2M 

내가 /api에 액세스

, 나는 /api 찾을 수 없다는 404 오류가 발생합니다 :

내 htaccess로는 것 같습니다. 내가 잘못 뭘하는지

<IfModule mod_ssl.c> 
    NameVirtualHost 10.104.17.3:443 
    <VirtualHost 10.104.17.3:443> 
    ServerName orddev.foo.com.au 
    DocumentRoot /var/www/orddev.foo.com.au___443/html 
    <Directory /> 
     Options FollowSymLinks 
     AllowOverride All 
    </Directory> 
    <Directory "/var/www/orddev.foo.com.au___443/html"> 
     Options FollowSymLinks MultiViews IncludesNOEXEC 
     AllowOverride All 
     Order allow,deny 
     Allow from all 
    </Directory> 
    <IfModule mod_php5.c> 
     php_admin_value upload_tmp_dir "/var/www/orders.foo.com.au___443/resources/_tmp/upload/" 
    </IfModule> 
    <IfModule mod_rewrite.c> 
     RewriteEngine on 
     RewriteCond %{REQUEST_METHOD} ^TRACE 
     RewriteRule .* - [F] 
    </IfModule> 
    ErrorLog logs/orddev.foo.com.au___443/ssl_error.log 
    CustomLog logs/orddev.foo.com.au___443/ssl_access.log combinedio 
    CustomLog logs/orddev.foo.com.au___443/ssl_request.log ssl 
    LogLevel warn 
    SSLEngine on 
    SSLProtocol all -SSLv2 
    SSLCipherSuite HIGH:MEDIUM:!aNULL:+SHA1:+MD5:!SSLv2 
    SSLCertificateFile /etc/pki/tls/certs/orddev.foo.com.au.crt 
    SSLCertificateKeyFile /etc/pki/tls/private/orddev.foo.com.au.key 
    <Files ~ "\.(cgi|shtml|phtml|php|php3?)$"> 
     SSLOptions +StdEnvVars 
    </Files> 
    SetEnvIf User-Agent ".*MSIE.*" \ 
     nokeepalive ssl-unclean-shutdown \ 
     downgrade-1.0 force-response-1.0 
    </VirtualHost> 
</IfModule> 

어떤 생각 :

내 아파치 conf의 파일처럼 보이는? .htaccess가 404 문서를 변경 한 것처럼 읽혀지고 있다는 것을 알고, 404 문서가 제대로 설치되지 않았다는 오류가 표시됩니다.

답변

1

아파치가 mod_rewrite를로드하지 않는 것 같습니다.

httpd.conf를 찾고 "rewrite_module"을 검색하십시오.

해당 줄이 # (주석으로 시작하는 경우)을 제거하고 # 아파치를 다시 시작하십시오.

내에서, 라인은 다음과 같습니다

LoadModule rewrite_module libexec/apache2/mod_rewrite.so 

...하지만 YMMV.

+1

:(.을 LoadModule rewrite_module 모듈/mod_rewrite.so에 없음. 내가 를했습니다 교체 phpinfo()는로드 된 모듈 아래에'mod_rewrite'를 보여줍니다. – Lock

+0

흠.'RewriteRule^phpinfo.php $ index.php '에 규칙이 생겼습니다. ''index.php'를로드했지만, RewriteRule'^ api $ index.php'로 변경하고'https : // foo.bar.com.au/api'에 접근하면 안됩니다. – Lock

+0

매우 이상합니다. 'RewriteRule^api.php $ index.php'을 시도해보십시오. –

4

다른 서버로 전환 한 .htaccess 파일이 있습니다. 이전에 잘 작동하고 전환 후 작업을 중단했습니다. httpd.conf 파일을 구성하여이 문제를 해결했습니다.

당신의 서버에 SSH 및 편집을 위해 httpd.conf 파일을 엽니 다

cd /etc/httpd/conf 
sudo nano httpd.conf 

는 "디렉토리"태그를 찾을 수 있습니다. this->

<Directory "/var/www/html"> 

과 같이해야하기에 AllowOverride

AllowOverride All 

다시 시작 그것은 주석 아니에요

sudo service httpd restart 
관련 문제