2013-10-23 9 views
1

htacess에 몇 가지 문제가 있습니다. 몇 페이지를 리디렉션해야하지만 규칙이 충돌하는 것으로 보입니다.htaccess URL에 변수를 추가 할 때의 문제

는 내가 가진 :

Redirect 301 /doors/door-frames-and-mouldings/hardwood-door-frames---exterior http://www.domain.co.uk/doors/door-frames-and-mouldings&sub=hardwood-door-frames 

난 데 문제는이 URL로 리디렉션되어있다 :

RewriteRule ^doors/([^/\.]+)/([^/\.]+)/?$ products.php?c=$1&p=$2 [L] 

나는이있어 원칙적으로 http://www.domain.co.uk/doors/door-frames-and-mouldings&sub=hardwood-door-frames?c=door-frames-and-mouldings&p=hardwood-door-frames---exterior - 그것이 너무 새 URL에 이전 변수를 추가하기 만하면됩니다. 이것을 막을 수있는 방법이 있습니까? 미리 감사드립니다.

답변

0

mod_rewrite 및 mod_alias 규칙을 혼합하지 마십시오. mod_rewrite 규칙을 통해서만 수행하십시오.

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^doors/([^/.]+)/([^/.]+)/?$ products.php?c=$1&p=$2 [L,QSA] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^doors/door-frames-and-mouldings/hardwood-door-frames---exterior http://www.domain.co.uk/doors/door-frames-and-mouldings&sub=hardwood-door-frames? [L,R=301,NC] 
+0

감사합니다. Anubhava. 첫 번째 RewriteRule에서'([^ /.] +)'대신에'([^ /.] +)'를 읽어야한다는 것을 확인할 수 있습니까? –

+0

문자 클래스 안에서 도트를 이스케이프 할 필요가 없기 때문에'([^ /.] +)'를 사용했습니다. '([^ /.] +)'는'/'와'.'를 제외한 모든 것을 의미합니다. – anubhava

관련 문제