2014-02-07 4 views
-1

모든 404 파일을 index.php로 다시 작성하려고합니다. 어떤 파일을 포함할지 결정하기 위해 PHP의 parse_url()을 사용합니다 (예 : about-us.php, contact-us.php). 그리고 나는 정말 이상한 결과를 얻고 있습니다. 내가 자동으로의 cPanel에 의해 생성 된 'dev에'URL에서 일하고 있어요cPanel URL을 사용하여 404를 모두 index.php로 다시 쓰는 방법은 무엇입니까?

:

RewriteEngine on 
RewriteBase /~mySite 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([a-zA-Z0-9-_.]+)$ index.php 

결과 : http://xxx.xxx.xxx.xxx/~mySite/

현재 방법은

.htaccess 파일에는 다음이 포함되어 혼합 백입니다 :

xxx.xxx.xxx.xxx/~mySite/contact-us이 잘 렌더링됩니다.

xxx.xxx.xxx.xxx/~mySite/contact-us/phonemod_rewrite에 걸리지 않은 404를 throw합니다.

xxx.xxx.xxx.xxx/~mySite/about-us서버 루트 (xxx.xxx.xxx.xxx/index.php)로 다시 작성됩니다.

가 이전

ErrorDocument 404 /~mySite/index.php 

을 시도하고 나는 다음을 제외하고는 유사한 결과를 얻을 : 그들이하려고하고 있기 때문에 index.php하지만 내 모든 CSS에

xxx.xxx.xxx.xxx/~mySite/contact-us/phone 재 작성 및 JS 포함이 꺼져 있습니다 부하는 /~mySite 대신 /~mySite/contact-us을 기준으로로드하십시오.

어떤 도움이 필요합니까? 나는 내 마음에서 벗어날거야. 특히 contact-us이 제대로 작동한다는 사실은 about-us이 아닙니까?

+1

왜 'ErrorDocument 404/index.php'가 아닌가? –

+0

안녕하세요 @MarcB, 위의 새 편집을 참조하십시오. – AJB

+0

'ErrorDocument 404/index.php'는 어떤 신비한 이유로'about-us' 문자열에 대해서도 작동하지 않습니다. – AJB

답변

1

먼저 cPanel 미리보기를 사용하지 마십시오. 그건 dev에 사이트를 볼 수있는 좋은 방법이 아닙니다. 규칙에 어떤 영향을 미치는지 누가 알 수 있습니까? 또한 제어판은 어쨌든 이상한 것을합니다.

real site 도메인 이름을 사용하여 사이트를 미리 봅니다. 도메인 이름으로 볼 수 있도록 컴퓨터에서 HOST 파일을 수정하면됩니다. 이 little guide은 편집 방법을 보여줍니다. 2 분 정도 걸립니다.

그러면 상황을 더 잘 확인할 수 있습니다.

아마도 ~ mySite이 문서 루트가 아니기 때문에 오류 문서가 작동하지 않는 이유는 무엇일까요? 이것이 일반적으로 cpanel에서 미리보기 링크가되는 방식입니다. 따라서 실제 오류 문서는 Marc B가 명시한대로되어야합니다.

ErrorDocument 404 /index.php 

mod_rewrite 솔루션을 원하면이 방법도 사용할 수 있습니다. 그러나 나는 둘 다 사용하지 않을 것이다. 보조 노트에

RewriteEngine on 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$/[R=301,L] 

, 나는 그것이 사용자가 리디렉션 때문에 요청한 페이지 대신 뭔가를 생각하는 사람들의 실제 페이지가 사이트에 바로 잘못되고 아니라는 것을 알 수 있도록 404 페이지를 사용하는 것이 좋은 생각 홈페이지로.페이 스북 (Facebook)처럼, 그것은 페이지를 사용할 수 없다는 붕대로 큰 엄지 손가락을 준다. 나는 꽤 독창적 인 많은 커스텀 404 페이지를 보았을 것입니다. 아마 단지 창의력을 발휘할 시간일지도 모릅니다.

+0

우수. 매력처럼 일했습니다. 이제는 cPanel의 dev URL 대신이 방법을 사용하겠습니다. 고마워, 잭. – AJB

관련 문제