2012-05-19 4 views
1

다음 mod 다시 쓰기가 작동하지 않습니다. 예를 들어 http://www.mywebsite.com/category/general과 같은 URL이있는 경우 ... 404 오류가 발생합니다.MOD 다시 쓰기 404 오류

RewriteEngine On 
RewriteBase/
RewriteRule ^category/([A-Za-z0-9-]+)&type=([A-Za-z0-9-]+)&r=([A-Za-z0-9-]+)&g=([A-Za-z0-9-]+)&page=([A-Za-z0-9-]+)/?$ /category.php?c=$1&type=$2&r=$3&g=$4&page=$5 [L] 

아래의 mod 재 작성을 사용하는 경우 모든 조합을 입력하는 대신 더 좋은 방법이 없어야합니다.

RewriteRule ^category/([A-Za-z0-9-]+)/?$ /category.php?c=$1 [L] 
RewriteRule ^category/([A-Za-z0-9-]+)&type=([A-Za-z0-9-]+)/?$ /category.php?c=$1&type=$2 [L] 
RewriteRule ^category/([A-Za-z0-9-]+)&page=([A-Za-z0-9-]+)/?$ /category.php?c=$1&page=$2 [L] 
RewriteRule ^category/([A-Za-z0-9-]+)&type=([A-Za-z0-9-]+)&page=([A-Za-z0-9-]+)/?$ /category.php?c=$1&type=$2&page=$3 [L] 
RewriteRule ^category/([A-Za-z0-9-]+)&r=([A-Za-z0-9-]+)/?$ /category.php?c=$1&r=$2 [L] 
RewriteRule ^category/([A-Za-z0-9-]+)&type=([A-Za-z0-9-]+)&r=([A-Za-z0-9-]+)/?$ /category.php?c=$1&type$2&r=$3 [L] 
RewriteRule ^category/([A-Za-z0-9-]+)&r=([A-Za-z0-9-]+)&page=([A-Za-z0-9-]+)/?$ /category.php?c=$1&r=$2&page=$3 [L] 
RewriteRule ^category/([A-Za-z0-9-]+)&type=([A-Za-z0-9-]+)&r=([A-Za-z0-9-]+)&g=([A-Za-z0-9-]+)&page=([A-Za-z0-9-]+)/?$ /category.php?c=$1&type=$2&r=$3&g=$4&page=$5 [L] 

답변

1

첫 번째 규칙 세트는 모든 인수가 있어야하므로 예제 URL에서는 트리거되지 않습니다. 두 번째 규칙 세트는 첫 번째 규칙이 "카테고리/'다음 단어를 처리하기 때문에 예제에서 작동하는 것으로 보입니다. 인수는 모두 직접 매핑 표시하기 때문에,

RewriteEngine On 
RewriteBase/
RewriteRule ^category/([A-Za-z0-9-]+)(&type=([A-Za-z0-9-]+))?(&r=([A-Za-z0-9-]+))?(&g=([A-Za-z0-9-]+))?(&page=([A-Za-z0-9-]+))?/?$ /category.php?c=$1&type=$3&r=$5&g=$7&page=$9 [L] 

을 또는 : 당신은 하나의 규칙을 원하는 경우

시도

RewriteEngine On 
RewriteBase/
RewriteRule ^category/([A-Za-z0-9-]+)(&type=[A-Za-z0-9-]+)?(&r=[A-Za-z0-9-]+)?(&g=[A-Za-z0-9-]+)?(&page=[A-Za-z0-9-]+)?/?$ /category.php?c=$1&type=$2&r=$3&g=$4&page=$5 [L] 

그 모두가) 당신은 항상해야한다고 가정 "category /"다음의 첫 번째 비트와 b) 나머지 옵션은 혼합되어 매치 될 수 있지만 항상 같은 순서로 존재합니다. 두 번째 방법은 원한다면 나중에 확장 할 수 있다는 의미이기 때문에 더 좋습니다. 첫 번째 항목은 역 참조가 없어졌습니다 ($ 9 사용).

관련 문제