2013-03-25 2 views
0

testpage.php 페이지가 있으며 localhost/testpage를 통해 액세스하려고합니다. 나는 그것이 작동하도록 정규식을 알아낼 수 없습니다. 나는 다음을 사용하는 경우.htaccess를위한 PHP 정규식

, 나는 서버 오류 나는 그것이 작동하는 정확한 파일을 지정하지만

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule .* "^[^0-9][A-z0-9_]+*.php"/$0 

를 얻을.

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule .* testpage.php/$0 

답변

3

이 시도 :

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.*)$ $1.php [NC,L] 

세 번째 줄 검사를 파일이 실제로 오류

+0

감사합니다. – user1104854

1
RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME}.php$ 
RewriteRule ^(.*)$ $1.php [L] 

을 방지하기 위해 재 작성을 수행하기 전에 존재하는 경우가 .PHP 확장자

와 파일 이름을 다시 작성합니다
1

대체 패턴에 정규식을 지정할 수 없습니다. 그것이 실패하는 이유입니다. 당신은 아파치가 문자 "^[^0-9][A-z0-9_]+*.php"/ 아무것도 (.*)를 재 작성 말하고있다

RewriteRule .* "^[^0-9][A-z0-9_]+*.php"/$0 

이 라인 플러스 일치 $ 1부터 시작하기 때문에 오류가, 어쨌든 제로 번째 일치하는 문자열 (에서 후 $ 2 등이있다).

당신이

(.*) 

처럼 괄호로 묶어야합니다 일치를 캡처하려면 다음이 $1로 대체 문자열에서 사용할 수있는 경우.

+0

OP의 문제를 설명하는 데 +1 – Umbrella

+0

@ 우산 감사합니다 :) –