누군가 도움을 줄 수 있기를 바랍니다. htaccess에 대해 잘 알려지지 않은 것에 대해 사과드립니다. 나는 여러 가지 옵션을 찾는데 몇 시간을 보냈지 만 성공하지는 못했습니다. 기본 URL이 양식 domain.com/index.php/page-namehtaccess redirection www가 아닌 www가 CMS와 충돌합니다
에 나는 CMS를 사용하고
은의 index.php를 잃고 단지 domain.com/을 가지고 관리자 설정이 아래 htaccess로 항목을 만듭니다 페이지 이름 :
<IfModule mod_rewrite.c>
<IfModule mod_env.c>
SetEnv gp_rewrite gJjsF6q
</IfModule>
RewriteEngine On
RewriteBase "/"
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
<IfModule mod_cache.c>
RewriteRule /?(.*) "/index.php/$1" [L]
</IfModule>
<IfModule !mod_cache.c>
RewriteRule . "/index.php" [L]
</IfModule>
</IfModule>
핵심 canonicalisation 돌봐하려면, www가 지금까지 실패에 비 www가 URL에 대한 요청을 리디렉션을 시도하고있다. 거의 모든 것이 어떤 종류의 서버 오류를 생성합니다. 500, 또는 문서가 여기로 이동되었습니다. 또한 ErrorDocument를 사용하여 요청을 처리하는 동안 403 Forbidden 오류가 발생했습니다.
www/www가 아닌 www를 다시 써 넣으면 (적어도 아래 도메인) 도메인 기능이 있지만 리디렉션은 루트에서만 작동합니다. 다른 모든 페이지는 /index.php/를 다시 쓰지 않고 domain.com/index.php/page-name 형식으로 페이지를 다시 보냅니다.
<IfModule mod_rewrite.c>
<IfModule mod_env.c>
SetEnv gp_rewrite gJjsF6q
</IfModule>
RewriteEngine On
RewriteBase "/"
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
<IfModule mod_cache.c>
RewriteRule /?(.*) "/index.php/$1" [L]
</IfModule>
<IfModule !mod_cache.c>
RewriteRule . "/index.php" [L]
</IfModule>
<Ifmodule mod_rewrite.c>
rewritecond %{http_host} ^domain.com [nc]
rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc]
</Ifmodule>
</IfModule>
리디렉션보다 본질적으로 나쁩니다. 누구든지 핵심 CMS 요구 사항을 유지 관리 할 수있는 방법과 www/non www 해결 방법을 제안하면 매우 환영 할 것입니다.
안녕 존 린 당신의 도움이 많이 감사합니다. 논리적으로 보였습니다. 나는 몇 가지 다른 장소에서뿐만 아니라 도메인 다시 작성을 시도했습니다. 누락 된 [L] 및 다른 순서 재 지정이 차이를 만든 것으로 보입니다. 모두 일하고 있습니다, 다시 한번 감사드립니다. – user1678778