2017-10-09 12 views
1

나는 다음과 같이 환경 변수의 현재 작업 디렉토리를 설정하는한다 RewriteCond이 일치합니다. CWD가 값 '/ ES /'한다 RewriteCond는 탐욕

로 설정되어

/es/website-design/do-it-yourself-website-builder.php 

다음 REQUEST_URI를 들어

RewriteRule ^(?!ui?)([a-zA-Z]{2})/(.*)$ $2?language=$1 [NC,QSA] 

RewriteCond $0#%{REQUEST_URI} ([^#]*)#(.*?/)\1$ 
RewriteRule ^(.*)$ - [E=CWD:%2] 

: 뭔가처럼

RewriteRule ^(?!ui?)([a-zA-Z]{2})/(.*)$ $2?language=$1 [NC,QSA] 

전반적으로, 내 htaccess로 섹션 본다

하지만 REQUEST_URI의 경우 :

/de/website-design/do-it-yourself-website-builder.php 

CWD는 값 '/ 디/웹 디자인 /'

이상적 CWD베이스 폴더 이름을 저장하기 위해 예상된다

('/ ES /'와 '/ 디 /'각각)로 설정된 위의 경우에.

여기에 무슨 문제가 있습니까? 나는 꽤 언젠가 이것에 붙어있다.

도와주세요. 내 htaccess로 파일의

내용 :

RewriteEngine On 
RewriteBase/

RewriteCond $2 !^(index\.php) 
RewriteRule ^(shop)/(.*)$ $2 [NC,QSA] 

RewriteCond %{THE_REQUEST} ^.*/(shop)/index\.php 
RewriteRule ^(.*)index.php$ /$1 [R=301,QSA,L] 

RewriteRule ^(?!ui?)([a-zA-Z]{2})/(.*)$ $2?language=$1 [NC,QSA] 

# following tweak done for running supersite from within a folder 
# for ever request url , this rule will match out the base folder 
# name and capture it in the regex rule given in RewriteCond 
RewriteCond $0#%{REQUEST_URI} ([^#]*)#(.*?/)\1$ 
RewriteRule ^(.*)$ - [E=CWD:%2] 

# Preventing Hot Linking of images 
#RewriteCond %{REQUEST_URI} ^\/getImage\.php [NC] 
#RewriteCond %{HTTP_REFERER} !^.*(manage.bigrock.in|manage.bigrock.com).*$ [NC] 
#RewriteCond %{REQUEST_URI} .*\.css$ [NC,OR] 
#RewriteCond %{REQUEST_URI} .*\.js$ [NC,OR] 
#RewriteCond %{QUERY_STRING} !^src\=favicon\.ico$ [NC] 
#RewriteCond %{HTTP_REFERER} ^http://([^/]+) [OR] 
#RewriteCond %{HTTP_REFERER} ^$ 
#RewriteCond %{HTTP_HOST}<>%1 !^(.+)<>\1$ [NC] 
#RewriteRule ^(.*)$ /noimage.html [Last] 

RewriteCond %{HTTP_USER_AGENT} ^GlobalSign-Approver 
RewriteRule ^(.*)$ cloudflare.html [L] 

RewriteCond %{SERVER_PORT} 80 
RewriteRule ^/onlinepayment/(.*)$ https://%{HTTP_HOST}/onlinepayment/$1 [NC,QSA] 

RewriteCond %{REQUEST_METHOD} !POST 
RewriteRule ^index\.php$/[R=301,QSA,L] 

RewriteCond %{REQUEST_FILENAME} (S|s)itemap.xml 
RewriteRule ^(.*)$ /seo-files.php?type=sitemap [L] 

RewriteCond %{REQUEST_FILENAME} ror.xml 
RewriteRule ^(.*)$ /seo-files.php?type=ror [L] 

RewriteCond %{REQUEST_FILENAME} urllist.txt 
RewriteRule ^(.*)$ /seo-files.php?type=urllist [L] 

# Robots.txt redirection to robots.php 
RewriteRule ^robots.txt robots.php [L,NC] 

# URL rewriting 
RewriteRule ^domain-registration-pricing$ /domain-registration/domain-registration-price.php [R=302,L,NC,QSA] 
RewriteRule ^domain-registration/transfer/index.php /domain.php?action=domain_transfer&bypass_url_mapper=false [L,NC,QSA] 

RewriteCond %{QUERY_STRING} ^idn 
RewriteRule .*domain-registration/index.php /domain-registration/idn? [R=301,L] 

RewriteRule ^promos.php /content.php?action=promos [L,NC,QSA] 

RewriteRule ^website-design/index.php /sitebuilder.php?type=sblite&bypass_url_mapper=false [L,NC,QSA] 
#RewriteRule ^website-design/do-it-yourself-website-builder.php %{ENV:CWD}website-design/index.php? [R=301,L,NC] 
RewriteRule ^website-design/web-design-service.php /website-design/index.php [R=301,L,NC,QSA] 
RewriteRule ^website-design/(.*).js$ /$1.js [L,NC,QSA] 

RewriteRule ^website-builder.php$ /website-design/index.php [R=301,L,NC,QSA] 
RewriteRule ^do-it-yourself.php$ /website-design/index.php [R=301,L,NC,QSA] 
RewriteRule ^build-it-for-me.php$ /website-design/index.php [R=301,L,NC,QSA] 

RewriteRule ^combo-offers /product-bundle.php [L,NC,QSA] 

RewriteRule ^express-cart[/]{0,1}([a-zA-Z0-9_]*)[/]{0,1}$ /quickbuy.php?action=$1 [L,NC,QSA] 
RewriteRule ^express-cart[/]{0,1}([a-zA-Z0-9_]*)[/]{1}([a-zA-Z0-9_]*)[/]{0,1}$ /quickbuy.php?action=$1_$2 [L,NC,QSA] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /urlmapper.php [L,QSA] 
+0

CWD는 기본 폴더 이름 ('/ es /'및 '/ de /')을 각각 반환해야합니다. 내 루트 폴더에 – debaShish

+0

, 'es'및 'de'폴더 외부 – debaShish

+0

그 다음 문제입니다. 표시 한 규칙은'RewriteBase' 경로를 결정하는 것입니다. 사이트 루트에서 상대 경로를 의미합니다. .htaccess 자체가 사이트 루트에 있다면'RewriteBase'는 단지'/' – anubhava

답변

0

모든 규칙이 L 플래그를 예를 들어이 있는지 확인

RewriteRule ^(?!ui?)([a-zA-Z]{2})/(.*)$ $2?language=$1 [NC,QSA] 

RewriteRule ^(?!ui?)([a-zA-Z]{2})/(.*)$ $2?language=$1 [NC,L,QSA] 

후 완전히 명확 브라우저 캐시해야합니다.

가변 변수 CWD은 항상 /이어야합니다. 왜냐하면 htaccess가 사이트 루트 디렉토리에 직접 배치되기 때문입니다.