서버 이전의 비밀을 조금.
사실 모처럼이므로 다언어 플러그인 동작 URL을 하위 폴더 (domain.com /??/)에서 하위 도메인 (?? domain.com /)로 변경하려고했지만 ... ... 결과 참패했습니다 . 무엇에,라고하면 Mod_Rewrite,.
아시없는 분들을 위해 깡땅 소개하면 "Mod_Rewrite"는 URL을 다시 작성하고, 외형의 URL과 실제적인 대상을 자유 자재로 사용할 수있게하는 플러그인입니다. 일반 사용자가 의식하는 것은 우선 없다고 생각 합니다만,주의 않은 곳에 각종 혜택을 받고있는 것입니다. 예를 들어, https : / /로 치지 않고 URL을 도메인 이름으로打ち込ん도 자동으로 https : / /로 시작하는 암호화된 페이지에 날게하고, 경험을 향상하는 일을하고있습니다.
그러나이 방법이 어렵다. ぐぐれ, 설명 및 예제는 많이 있지만 여러 규칙 조합 때 행동이いまひとつ掴み청결없습니다.
참고 사이트 각종
mod_rewrite 모듈 - URL 재작성 엔진
mod_rewrite 참조 - dawgsdk.org
마지막 대상 URL은 "http://catswhiskers.jp/ 기사 URL? lang = 언어"이란 확정합니다.
그래서 먼저 하위 도메인 부분에 언어 지정을 넣은 경우, 예를 들면 "http://en.catswhiskers.jp/"를 "http://catswhiskers.jp/lang=en"로 변환해야합니다. 여기서 중요한 것이 도메인 부분이 변화하는 것은 비록 하위 도메인에만라고 등 다른 서버로 취급하는 것입니다. 즉 [P] 옵션 내부 프록시하지 않으면 리디렉션된 외형의 URL이 변경됩니다. 따라서 다음과 같은 설정을하면 OK,해야 하죠 ...
RewriteCond % (HTTP_HOST) ^ (en | fr | de .. 중략 .. | ja)
RewriteRule (.*) http://catswhiskers.jp/ $ 1? lang = % 1 [QSA,P]
이 결과가 어째서인지 "404 Not Found."게다가 보통 404과 달리, 그 문장만이 작게 표시하고있는 상태입니다 (XREA 서버). 여기서 갑자기躓き되었습니다. ためし에 [P] 옵션을 해제하고, 일반적으로 리디렉션하면 문제없이 표시됩니다. 는 것은 다시 쓰기 규칙이 틀리지 않다는 생각이지만 ... ... XREA 서버는 Mod_Proxy이 효과적이지 않을지도?
아,横道그것 있지만 또 다른 [QSA] 옵션은 추가 쿼리를 인수하기 (예를 들어 다른 사람에게? id = 1 관하여 경우)입니다. RewriteRule 판정 부분에 검색어를 포함하지 않습니다. CMS를 사용하는 경우는 잊기로ハマり경향 때문에주의합시다. 덧붙여서 검색어 부분에서何かしら맞추고 싶다면, RewriteCond % (QUERY_STRING) 확인시켜주세요.
閑話休題. [P] 옵션에 대해 이런저런 시도했습니다, 무엇을해도 실패. 어떻게 쓰고換わっ하고 404다고하는지 안다면 생각 로그를 가지고 가기 위하여려고 RewriteLog 및 RewriteLogLevel 설정을 시도했습니다, XREA은 대단히이 옵션을 사용할 수 없도록 ... ...되면 환상에서 시도할 수밖에없고 ,いい加減정신적 한계에 접근하고왔다 때문에 포기했다 따라있습니다.
이제는あっさり끝?라고 반대로 하위 폴더 언어 지적을 쿼리로 변환하지 않고서는 안됩니다. 설정이 다음입니다.
RewriteCond % (REQUEST_URI) ^ / (en | fr | de .. 중략 .. | ja)
RewriteRule ^ [-a-zA-Z] +/(.*) / index.php / $ 1? lang = % 1 [QSA,L]
또한이 사이트 특유의 URL로, / blog / 아래에 범주 이름 / 날짜 / 기사 이름 html이라는 구조로되어있습니다. 그리고 사실 카테고리 이름은있어도 없어도 제대로 표시되도록합니다. 이것은 미래의 카테고리 이름을 변경한 경우에도 이전 URL에서 문서에 액세스할 수 있도록하기위한 것입니다. 이것을 실현하기 위해 실체는 카테고리 이름 없음 (사진을 보면 잘 알 것입니다), 플러그인 연결에 카테고리 이름을 삽입한다는 작업을 내부적으로 실시하고있습니다. 이를위한 재작성 규칙이 ...
RewriteCond % (REQUEST_URI) ^ / (en | fr | de .. 중략 .. | ja) / blog / [^/] + / ( [0-9_] +/.*)$
RewriteRule (.*) / index.php / blog / % 2? lang = % 1 [QSA,L]
이것 (위)과 이것 (아래).
RewriteCond % (REQUEST_URI) ^ / blog / [^/] + / ( [0-9_] +/.*)$
RewriteRule (.*) / inde.php / blog / % 1 [QSA,L]
또한 이후에 계속하여 Word Press 표준 규칙 (아래)입니다.
RewriteCond % (REQUEST_FILENAME)! - f
RewriteCond % (REQUEST_FILENAME)! - d
RewriteRule. / index.php [QSA,L]
상당히 혼란했습니다군요. 좋아, 나도 혼란하고있습니다 (웃음). 아마 나의 이해가 부족하고 계십니까 손에적인 니다만 재기록 URL을 다음의 규칙을 잘 통과하지 않습니다. 원래는 "언어 지정 부분 갱신"-> "카테고리 이름 갱신"순서대로渡せれ경우에, 더 깨끗하게 쓸 수 있지만 ... ... 어쨌든
- 언어 지정하며, 카테고리 이름 들어가는 URL
- 언어 지정하며, 카테고리 이름 들어가지 않는 URL
- 언어를 지정하지 않고 있으며, 카테고리 이름 들어가는 URL
- 언어를 지정하지 않고 있으며, 카테고리 이름 들어가지 않는 URL
라는 4 가지 규칙을 별도로 쓰는羽目입니다. 원인 추구는 RewriteLog를 취할 수 테스트 서버를내어 실험 해 볼 수밖에없는지도 모릅니다. URL에 재작성 규칙을 입력하면 결과가 나오는 같은 Web 도구를 갈망하고있습니다. .
덧붙여서, WordPress 표준 규칙 RewriteRule의 "(.*)"가 아닌 ""마쳤으있는 곳이, 개인 적으로는 무척 신기한합니다. 이것이다 "/ test.html"에 접근이 처음 한 문자 단지 변환된다 "/ index.phpest.html"(RewriteRule에서는 첫번째 /는 판정에 포함되지 않은)가 될 생각이 든다 니다만 ... ... 진짜로 기사를 보면 이제 보는 있기 때문에 잘못이 없다 있을까요지만.
이로써 일단 완성는하지만 일부 대단히 디렉토리인데 마지막을 /로 끝내지 않는다 URL에 액세스하면 오류가 묻는 때문에, 대상이 파일이없는 경우 (확장자가 붙어 있지 않은 경우), 마지막으로 /를 보충하기 위하여 만일 하고 수있습니다. ... ... 재작성뿐 나름의 부하가 될 것.
내친김에 XREA 특유의 이야기이지만, PHP가 안전 모드에서 움직이고있어 다양한에서 작동하지 않고있는 경우가 많고, CGI 모드로 불리는 형태로 PHP 운영이 핵심입니다. 그것은. htaccess "AddHandler application / x - httpd - phpcgi. php"를 기술해야합니다.
, WordPress를 달리는 때 중요합니다. Mod_Rewrite와 함께 사용하면 CGI 모드 PHP는 PathInfo 정보가 잘 빠져들어 답게 기사 URL 형식은 개별 기사를 볼 수있습니다 (.) 결국 안전 모드로 전환 운영하고있습니다. 기사보기에는 문제없습니다, 자동 업그레이 드를하지 않을 수있습니다. 다른 제한 사항은 PHP : 안전 모드 - Manual을 참조하십시오.
아, 이렇게. 코멘트 후에 오류가 나오는 것도 차제에 치유되었습니다 (겨우 ... 그리고 아마도). 기사 URL 형식 때문인지 게시 후 http:// ~ / / ~ 슬래시를 2 개 운영하고있는 주소로 비행하고 만다 같은 때문에, 그것을 갱신만의 플러그인을 만들 경우있습니다 ( 일부러 ...苦笑). 좀더 근본적인 치유 방법을 아시는 분은 가르쳐주세요 m (_ _) m