모든 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/phone
은 mod_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
이 아닙니까?
왜 'ErrorDocument 404/index.php'가 아닌가? –
안녕하세요 @MarcB, 위의 새 편집을 참조하십시오. – AJB
'ErrorDocument 404/index.php'는 어떤 신비한 이유로'about-us' 문자열에 대해서도 작동하지 않습니다. – AJB