2009-07-10 7 views
1
From : www.example.com/cut/456 
To : www.example.com/cut/index.php?tag=456 

나는이 시도하고mod_rewrite를 문제

RewriteEngine On 
RewriteRule ^([^/]*)$ /cut/index.php?tag=$1 [L] 
+0

와 작업이'.htaccess'가요? 그것이 어디에 있습니까? – SilentGhost

+0

예// .htaccess – Waseem

답변

3
RewriteEngine On 
RewriteBase /cut/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]*)$ /index.php?tag=$1 [L] 

그것은이

1

당신의 .htaccesscut 디렉토리에 위치하지 않는 한, 그것을 사용하는 것이 더해야 작동하지 않습니다

RewriteRule ^cut/(.+)/?$ /cut/index.php?tag=$1 [L] 

을 달리

RewriteRule ^(.+)/?$ index.php?tag=$1 [L] 

해야합니다. 이 작동하지 않기 때문에 대체 문자열에 문제가있는 것 같습니다.은 문제에 대한 설명이 충분하지 않습니다. 그냥 정수 값을 기대한다면

+1

요청한 URL/cut/15를이 서버에서 찾을 수 없습니다. – Waseem

+0

그것이 안 폴더에 있다면 : 한다 RewriteRule ^/$ ../index.php?tag=$1 [L] 테스트하지 않음 –

+0

... (+).?. – SilentGhost

0

, 당신은 같은 값에 패턴을 제한해야합니다 :

RewriteRule ^([1-9][0-9]*)$ index.php?tag=$1 [L] 

현재 패턴의 문제는 ^([^/]*)$도 (당 디렉토리 경로 접두어없이 /cut/index.php) index.php 일치 않는다는 것입니다 따라서 무한 루프가 발생할 수 있습니다.

1

서버가 실제로 .htaccess를로드합니까? 파일 끝에있는 쓰레기를 버리고 오류가 있는지 확인하여 확인할 수 있습니다.

그렇지 않은 경우 AllowOverride은 아마도 디렉토리 트리의 어딘가에없는 것으로 설정됩니다. 아파치의 메인 설정 파일에 <Directory /path/to/cut>을 선언하고 AllowOverride All을 넣어보세요.