2013-03-25 5 views
0

저는 웹 사이트에 Dokuwiki를 사용합니다. htaccess 재 작성 규칙에 대한 빠른 질문이 있습니다. 나는 다음과 같은 구성을 가지고있다. 제안은 the Dokuwiki help에서 온 것입니다.htaccess는 다시 쓰기 규칙에 대해 작동하지 않습니다.

Options -Indexes -MultiViews +FollowSymLinks 
RewriteEngine on 

RewriteCond %{HTTPS} !=on 
RewriteRule ^lib/exe/xmlrpc.php$  https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301] 

RewriteRule ^_media/(.*)    lib/exe/fetch.php?media=$1 [QSA,L] 
RewriteRule ^_detail/(.*)    lib/exe/detail.php?media=$1 [QSA,L] 
RewriteRule ^_export/([^/]+)/(.*)  doku.php?do=export_$1&id=$2 [QSA,L] 
RewriteRule ^$      doku.php [L] 
RewriteCond %{REQUEST_FILENAME}  !-f 
RewriteCond %{REQUEST_FILENAME}  !-d 
RewriteRule (.*)      doku.php?id=$1 [QSA,L] 
RewriteRule ^index.php$    doku.php 

RewriteCond %{HTTP_HOST} ^mydomain.com$ [NC] 
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [R=301,L] 

나는 모두 무슨 일이 일어나는지 이해하지 못한다는 것을 인정한다. 중요한 것은 내가

http://mydomain.com 

http://www.mydomain.com 

또한 하위 도메인으로 변경하려는 것입니다. 또한 doku.php와 같은 것들을 첨부하는 추악한 Dokuwiki 구문을 없애고 싶습니다. 링크의 끝까지.

현재이 htaccess로 파일로 변환은 다음과 같습니다

그래서
[Good] www.mydomain.com --> www.mydomain.com 
[Good] www.mydomain.com/mypage --> www.mydomain.com/mypage 

[Bad] mydomain.com --> www.mydomain.com/doku.php 
[Bad] mydomain.com/mypage --> www.mydomain.com/doku.php?id=mypage 

당신이보고, 내가 일의 앞에 www를 첨부하는 경우 제대로 작동하는 것 같다,하지만 난 후 다시을하지 않는 경우 -write 규칙은 적절한 www를 붙이지 만, 이제는 못생긴 위키 문법도 사이트 이름 (doku.php와 id = parts)을 동반합니다.

어디 htaccess 구성에 잘못 되었습니까?

답변

0

TSGM, 마지막 두 줄로 mydomain.com에서 www.mydomain.com까지 다시 작성한다는 점을 제외하고는 괜찮습니다. 마지막 두 줄을 위로 이동하여 RewriteEngine on 바로 뒤에 올리면 문제가 해결됩니다.

(때로는) 리디렉션이 '클린 URL'을 생성하기 위해 실행되었고 이것이 발생하면 www가 다시 작성되지 않기 때문에 그 이유가 있습니다.

두 줄을 위로 이동하면 doku 다시 쓰기가 시작되기 전에 www를 다시 작성해야합니다.