URL에서 'index.php'를 제거하는 방법?


답변:


17

Joomla 글로벌 구성에서 SEF URL, 특히 "URL 재 작성 사용"매개 변수를 사용하여이를 수행 할 수 있습니다.

.htaccess옵션을 활성화하기 전에 파일 을 만들지 않으면 내부 서버 오류가 발생합니다 .

멋진 URL을 얻는 데 필요한 단계를 설명하는 문서 페이지가 있습니다. 여기를보세요 : http://docs.joomla.org/Enabling_Search_Engine_Friendly_(SEF)_URLs

기본적으로 htaccess.txtJoomla 루트 디렉토리에 있는 파일의 이름을 바꿔야합니다 . 호스팅 업체에 따라 추가 단계가 필요합니다.


좋아, 나는 그것을 시도 할 것이다. Joomla가 지금 생각할 때 코드 자체를 생성하지 않는 것이 약간 이상합니다. 나는 그 옵션을 시도했고 실제로 충돌했다고 생각합니다.
connersz

1
그것이 바로 Joomla가 코드 자체를 생성하지 않는 이유입니다. 그것은 호스트에 많이 의존하고 우리는 기능을 활성화하여 귀하의 사이트를 완전히 중단하고 싶지 않습니다 :)
Bakual

4

이 코드를 Joomla의 index.php 상단에 추가 할 수 있습니다 :

if(strcmp($_SERVER['REQUEST_URI'], '/index.php') == 0 && $_SERVER['QUERY_STRING'] == ''){
    header("HTTP/1.1 301 Moved Permanently");
    header('Location: /');
    exit;
}

이 방법을 사용하는 경우 업그레이드 할 때이 방법을 다시 실행해야합니다.


리디렉션 및 ReWrite가 htaccess에서 작동하지 않은 경우 옵션 해킹 으로이 작업을 수행 할 수 있다고 제안합니다. 그래서 유효한 폴백
tristanbailey

동의했다. 이것이 실제로 우리가이 솔루션에 도달 한 방법입니다. 우리는 제대로 사이트 넓은 작업에 htaccess로 수정을 가져올 수 없습니다
ContextSwitch

4
  1. htaccess.txt를 .htaccess로 변경
  2. 사이트> 전역 구성 : URL 재 작성 사용 (예 선택)
  3. SEO 설정 검색 엔진 친화적 URL (예 선택)

2

.htaccess를 사용하여 사이트가 충돌하는 경우 일반적인 방법은 다음과 같습니다.

  • 다음 행 중 하나 또는 둘 다를 주석 처리해야합니다.

옵션 + FollowSymLinks

및 / 또는

RewriteBase /

이것은 잘 작동합니다! 참고 : "#"행에 해시 태그를 제공하여 주석을 추가합니다.


1

당신이 사용하는 경우 의 nginx의 웹 서버를, 당신은을 위해 다음 코드를 사용하여 nginx.conf구성 파일 당신의 줌라! site가 제공됩니다 (기본적으로 index index.php지시문이 나타나는 기존 줄 뒤에 if 조건을 추가하십시오 ).

#https://stackoverflow.com/a/38165768/remove-index-php-from-joomla-urls-with-nginx
index index.php index.html index.htm;
if ($request_uri ~ "^/(.*)(?<=/)index\.php/?((?<=/).*)?$") {    return  301 /$1$2;  }

자세한 내용은 /programming/28997028/remove-index-php-from-joomla-urls-with-nginx/38165768#38165768에 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.