2013-11-23 4 views
0

.rewriteRule 함수에서 산술 연산을 수행 할 수 있습니까? 내 URL을 다시 작성하고 싶습니다. 이.rewriteRule 함수에서 산술 연산을 수행하는 방법?

/view.php?id=2

/? p = 6 (ID * 2 + 2)

+1

이는 Apache의 기능 범위를 벗어나며 PHP 내에서 수행되어야합니다. 너 뭐하려고? –

+0

나는 나의 새로운 wordpress blog에 나의 오래된 URL을 다시 쓰고 싶다. 나는 wordpress에 ID를 바꿀 수 없다. –

+1

그리고 새 ID는'(id * 2 + 2)'패턴을 따릅니다. 정말? (일반적으로 ID가 대개 일치하지 않으므로 블로그 게시물을 하나씩 명시 적으로 리디렉션합니다.) –

답변

0
에 가입일

다시 쓰기 맵을 사용하여 외부 프로그램을 호출 할 수 있습니다. 부하가 높을 때 조금 느려질 것입니다. 재 작성 맵은 htaccess 파일에없는 서버의 config 또는 vhost 구성 에만 정의 할 수 있습니다.. 그러나 htaccess 파일에서 사용할 수 있습니다.

RewriteMap math prg:/path/to/script.pl 

그런 다음 문서의 루트에 htaccess로 파일의 매핑을 사용

#!/usr/bin/perl 
$| = 1; # Turn off I/O buffering 
while (true) { 
    print <STDIN> * 2 + 2; 
} 

그런 다음 매핑을 선언

그래서 당신은 당신의 수학을 표준 입력에서 읽고 수행하는 간단한 스크립트를 :

RewriteEngine On 
RewriteCond %{QUERY_STRING} ^id=([0-9]+) 
RewriteRule ^view\.php$ /?p=${math:%1} [L] 
관련 문제