Joomla 1.5.9는 IIS 5.2의 vista 64 dev에있는 PHP 5.2.8, mySQL 5.1.31과 함께 실행됩니다. 나는 SEO Settings "Search Engine Friendly URLs"과 "Use Apache mod_rewrite"가 올바르게 작동한다.IIS7에서 Joomla 검색 엔진 친화적 인 URL 문제
저는 (www.mochahosting.com을 사용하여) 호스팅 사이트도 구축 중입니다. 그들은 같은 소프트웨어의 약간 오래된 버전 인 Joomla 1.5.5, php 5.2.6, mySQL 5.0.4x를 사용합니다. 또한 IIS7을 사용하지만, 윈도우 32에서 실행
내가 호스팅 사이트에 를 작동하도록 SEO 설정 중 하나를 얻을 수(나는 거의 함께, 내 로컬 컴퓨터에서 작업 할 수있는 SEO 설정을 입수했습니다 동일한 구성). 이제는 "검색 엔진 친화적 인 URL"로 시작하여 일을 단순하게 유지하십시오.
또한 아직 도메인 이름이 없으므로 호스트 파일 별칭을 사용하여 사이트에 연결합니다. 나는 누군가가 그 문제를 해결하기 위해 내 질문에 답할 것을 기대하지 않는다. 그래서 나는 그 문제를 설명 할 것이고 나는 사람들이 무슨 일이 일어나고 있는지를 이해할 수있는 충분한 일을하기를 희망한다. 이 질문의 목적으로 http://nodomainyet.com/joomla156_mx을 기본 URL (즉, joomla 홈페이지)로 사용하겠습니다. 예, 이것은 Joomla가 하위 디렉토리에 설치되어 있다는 것을 의미합니다. 이것이 문제가되는지 아닌지 확실하지 않습니다 (내 dev에 문제가 아닙니다).
에 관한 문제입니다.
"검색 엔진 친화적 인 URL"을 켜면 http://nodomainyet.com/joomla156_mx에 404 ("구성 요소를 찾을 수 없음")가 생성됩니다. 404 오류 페이지에는 http://nodomainyet.com/joomla156_mx/index.php으로 연결되는 링크가 있으며 해당 링크가 작동합니다. '검색 엔진 친화적 URL'을 끄면 http://nodomainyet.com/joomla156_mx과 http://nodomainyet.com/joomla156_mx/index.php이 모두 작동합니다. 그래서 내가 (다양한 메인 메뉴 링크로 이동 http://nodomainyet.com/joomla156_mx/index.php과 거기에서 이동하는 경우 "엔진 친화적 인 URL을 검색"을 켜면, 지금의 작동이 중지 http://nodomainyet.com/joomla156_mx/index.php-http://nodomainyet.com/joomla156_mx의 "자동 리디렉션"...
원인이 보인다 나는 새로운 Joomla 인스턴스로 설치되는 기본 joomla 사이트 만 사용하고 있습니다.) 그러면 모든 것이 잘 작동합니다. 그냥 작동하지 않는 http://nodomainyet.com/joomla156_mx로 갈 것입니다. 기본 메뉴에있는 "집"링크가 기본적으로 http://nodomainyet.com/joomla156_mx으로 이동한다는 점은 주목할 가치가 있습니다. "사용 - 두 번째 SEO 설정을 켜면 내가 내 dev에 상자의 그것과 호스트은 phpinfo의 출력을 비교 한이 문제를 야기 차이를 볼 수 없었다
...
Apache mod_rewrite "는 문제를 해결하지 못합니다 (URL의 index.php를 제거하는 것이기 때문에 생각할 수도 있습니다).
"검색 엔진 친숙한 URL"은 보통 web.config를 필요로하지 않으며 규칙을 다시 작성하지 않아도됩니다. 무엇이 잘못 될지 모릅니다.
업데이트 - 2009-03-03 나는 단지 ("사용 아파치 mod_rewrite는에서 처음 SEO 설정 ("검색 엔진 친화적 인 URL을 ")에 설정하는 나쁜 생각이었다 어쩌면 생각
") (비록 로컬 컴퓨터에서만"검색 엔진 친화적 인 URL "을 켜기 만해도 괜찮습니다). 그래서 몇 가지 실험을 시도해 보았습니다.
URL을 다시 쓰는 것이 호스트의 IIS7에서 제대로 설정되지 않았다고 생각했습니다. 나는 http://learn.iis.net/page.aspx/461/creating-rewrite-rules-for-the-url-rewrite-module에 설명 된 (첫 번째) 테스트 파일을 작성 했으므로 URL 재 작성이 작동한다는 것을 의미합니다.
그런 다음 IIS7의 Joomla에서 볼 수있는 다시 쓰기 규칙이 서브 디렉토리를 고려하여 다시 작성해야한다고 생각했습니다. 위에서 말했듯이 SEO 설정은 로컬 컴퓨터에서 제대로 작동합니다. Joomla는 하위 디렉토리에도 설치되어 있으며 모든 것이 잘 작동합니다. 그럼에도 불구하고, 나는
<rewrite>
<rules>
<rule name="Imported Rule 1" enabled="true">
<match url="(.*)" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" pattern="" ignoreCase="false" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" pattern="" ignoreCase="false" />
<add input="{SCRIPT_NAME}" negate="true" pattern="^/joomla156mx/index.php" ignoreCase="false" />
<add input="{SCRIPT_NAME}" pattern="(/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$" />
</conditions>
<action type="Rewrite" url="joomla156mx/index.php" />
</rule>
</rules>
</rewrite>
에
<rewrite>
<rules>
<rule name="Imported Rule 1" enabled="true">
<match url="(.*)" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" pattern="" ignoreCase="false" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" pattern="" ignoreCase="false" />
<add input="{SCRIPT_NAME}" negate="true" pattern="^/index.php" ignoreCase="false" />
<add input="{SCRIPT_NAME}" pattern="(/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$" />
</conditions>
<action type="Rewrite" url="index.php" />
</rule>
</rules>
</rewrite>
에서 재 작성 규칙을 수정하려고 (즉, 조건과 행동에 디렉토리 이름을 붙이는). 그것은 차이를 만들지 않았습니다. 이제 규칙을 다시 작성하기에 완전히 새로운 것이므로 뭔가를 망쳤을 수도 있습니다.
나는 리디렉션 규칙이 없다는 점을 의심 스럽다. 즉, &을 '다시 쓰는'URL을 붙여 넣으면 서버에 작성 URL이 있다는 것을 알려주지 않으며 실제 URL로 리디렉션되어야합니까? 그러나 다시,이 모든 것은 일반 오래된 재 작성 규칙을 가진 로컬 상자에서 제대로 작동하므로 잘못 된 트리에서 짖을 수 있습니다.
도움 주셔서 감사합니다.
답변 해 주셔서 감사합니다. 그러나 필자는 이미 로컬 컴퓨터와 호스팅 된 사이트에서 비슷한 지침을 따랐습니다. 내 로컬 컴퓨터에서 작동하지만 호스팅 된 사이트에서는 작동하지 않습니다 ... 따라서 호스팅 사이트에서이를 진단하는 방법에 대한 자세한 정보가 필요합니다. – Jimmy