2012-05-15 2 views
1

도움을 요청하기 전에 잠시 멈추었습니다. 도움을 주시면 감사하겠습니다..htaccess는 규칙을 적용 할 때 디렉토리를 무시하지 않습니다.

모든 집중적 인 목적을 위해이 방법을 사용하여 소문자 URL을 모두 현재 설정에서 작동하도록해야했습니다.

이 설정을 사용하면 디렉토리의 모든 URL이 건너 뛸 수 있습니다.

RewriteCond %{REQUEST_URI} "/dont-touch/" [OR] 
RewriteCond %{REQUEST_URI} "/blog/" 
RewriteRule ![A-Z] - [S=26] 
RewriteRule ^(.*)A(.*)$ /$1a$2 [R,L] 
RewriteRule ^(.*)B(.*)$ /$1b$2 [R,L] 
RewriteRule ^(.*)C(.*)$ /$1c$2 [R,L] 
RewriteRule ^(.*)D(.*)$ /$1d$2 [R,L] 
RewriteRule ^(.*)E(.*)$ /$1e$2 [R,L] 
RewriteRule ^(.*)F(.*)$ /$1f$2 [R,L] 
RewriteRule ^(.*)G(.*)$ /$1g$2 [R,L] 
RewriteRule ^(.*)H(.*)$ /$1h$2 [R,L] 
RewriteRule ^(.*)I(.*)$ /$1i$2 [R,L] 
RewriteRule ^(.*)J(.*)$ /$1j$2 [R,L] 
RewriteRule ^(.*)K(.*)$ /$1k$2 [R,L] 
RewriteRule ^(.*)L(.*)$ /$1l$2 [R,L] 
RewriteRule ^(.*)M(.*)$ /$1m$2 [R,L] 
RewriteRule ^(.*)N(.*)$ /$1n$2 [R,L] 
RewriteRule ^(.*)O(.*)$ /$1o$2 [R,L] 
RewriteRule ^(.*)P(.*)$ /$1p$2 [R,L] 
RewriteRule ^(.*)Q(.*)$ /$1q$2 [R,L] 
RewriteRule ^(.*)R(.*)$ /$1r$2 [R,L] 
RewriteRule ^(.*)S(.*)$ /$1s$2 [R,L] 
RewriteRule ^(.*)T(.*)$ /$1t$2 [R,L] 
RewriteRule ^(.*)U(.*)$ /$1u$2 [R,L] 
RewriteRule ^(.*)V(.*)$ /$1v$2 [R,L] 
RewriteRule ^(.*)W(.*)$ /$1w$2 [R,L] 
RewriteRule ^(.*)X(.*)$ /$1x$2 [R,L] 
RewriteRule ^(.*)Y(.*)$ /$1y$2 [R,L] 
RewriteRule ^(.*)Z(.*)$ /$1z$2 [R,L] 

이 내 htaccess로 파일이 모습입니다, 필자는 그것을 퍼팅 시도에/그나마 터치 소문자 재 작성이 적용 해달라고 그래서 아래의 코드를 삽입해야합니다 - 예/망가 - 터치 /을 File1 작동이 중지 시작 ... 끝. 아무것도 작동하지 않습니다.

RewriteEngine On 



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


RewriteCond %{REQUEST_URI} !/component/ 
RewriteCond %{REQUEST_URI} !/administrator/ 
RewriteCond %{HTTP_HOST} ^(www.)?example\.com$ [NC] 
RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,L] 
+0

나는이 두 가지를 받아 들였습니다. ** 모든 집중적 인 목적을 위해 **. 모든 의도와 목적을 위해? 아파치 서버를 사용 중이며 .htaccess _are_가 인식되고 처리되는 것으로 변경됩니까? 어쨌든, 아래 답변에 따르면 문제가 해결 되었습니까? –

답변

0

첫째, 당신은 여기이 RewriteMap을 사용하는 것이 더 낫다 :

RewriteEngine On 
RewriteMap lc int:tolower 
RewriteCond %{REQUEST_URI} [A-Z] 
RewriteRule (.*) ${lc:$1} [R=301,L] 

이 대신 26 느린 규칙, 소문자로 URI의 모든 변경됩니다. 둘째

디렉토리를 다시 작성하지 위해, 나는 당신이 따옴표

RewriteCond %{REQUEST_URI} ^/dont-touch(/|$) [OR] 
RewriteCond %{REQUEST_URI} ^/blog(/|$) 
RewriteRule ^.*$ - [NC,L] 

그리고 당신은 마지막에 [L] 플래그를 넣어 경우, 그 시점 아래 아무것도 방해하지 않습니다에 넣어한다고 생각하지 않습니다 이 규칙.

+0

그래도 RewriteMap은 사용하지 않습니다. lc int : tolower 은 httpd.conf 또는 VHOST 파일에 있어야합니다. 나는 접근 할 수 없다. – Persist404

+0

아, 그래, 선언은 가상 호스트 또는 conf 파일에 있어야합니다. 일단 그곳에 도착하면 .htaccess에서지도를 사용할 수 있습니다. 어쩌면 호스팅 제공 업체가지도를 정의 했는가? – Ansari

+0

나는 이것을 찾아서 감사 할 것이다 – Persist404

관련 문제