문제

지금은 뭔가를 하는 다음과 같다:

RewriteRule ^/?logout(/)?$ logout.php
RewriteRule ^/?config(/)?$ config.php

전 오히려해야 하는 규칙이 같은 일을 할 것 각 url 에 대해,그래서 내가 계속 할 필요가 없 추가하면 모든 시간을 나는 새 파일을 추가합니다.

또한,나는 같은 일치하는 것'/config/새로운'에'config_new.php'는 경우는 것이 가능합니다.나는 몇 가지 추측 regexp 게 이를 수행?

도움이 되었습니까?

해결책

Try:

RewriteRule^/?(\w+)/?$ $1.php

$1 은 내용의 캡처된 첫 번째 문자열에서 부류입니다.괄호는 주위에 2 차 슬래쉬가 필요하지 않습니다.

편집:다른 일치하는,이것을 시도하십시오:

RewriteRule^/?(\w+)/(\w+)/?$ $1_$2.php

다른 팁

나는 다음과 같은 것이 가능합니다.

RewriteRule ^/?(logout|config|foo)/?$ $1.php
RewriteRule ^/?(logout|config|foo)/(new|edit|delete)$ $1_$2.php

내가 선호하는 명시적으로 목록은 url 을 원하기는 걱정할 필요가 없에 대한 정적 컨텐츠 또는 추가 새로운 것을 나중에는 필요하지 않 위해 다시 작성 php 파일이 있습니다.

위 확인하는 경우 모든 하위 url 의 유효한 모든 루트 url's(book/new, movie/new, user/new어),하지만 너무 좋지 않을하려는 경우 다른 하위 url 의에 따라 루트 작업(logout/new 은 큰 의미가 없).당신을 처리할 수 있는 더 복잡한 정규 표현식,또는 라우팅에 의해 모든 것을 단일 php 파일이 파일을 결정함과를 기준으로 표시합니다.

모 다시 쓰기 할 수 없다(잠재적으로)무한한 대체 당신이 원하는 것처럼 할 수의 두 번째 부분에서 당신의 질문입니다.그러나 체크 아웃 외부 재작성 엔진에서의 하단 아파치 URL 재작성 가이드:

외부 재작성 엔진

설명:

A FAQ:우리는 어떻게 해결하 FOO/BAR/QUUX/etc.문제입니까?가 보인 솔루션을 사용하여 mod_rewrite...솔루션:

사용 external RewriteMap,i.e.는 프로그램 acts like a RewriteMap.그것은 한 번 실행의 시작에 아파치를 받도록 요청 URLs on STDIN and 을 넣어 가지고 그 결과(일반적으로 다시 작성)URL on STDOUT(same order!).

RewriteEngine on
RewriteMap    quux-map       prg:/path/to/map.quux.pl
RewriteRule   ^/~quux/(.*)$  /~quux/${quux-map:$1}

#!/path/to/perl

#   disable buffered I/O which would lead
#   to deadloops for the Apache server
$| = 1;

#   read URLs one per line from stdin and
#   generate substitution URL on stdout
while (<>) {
    s|^foo/|bar/|;
    print $_;
}

이 데모-만 들고 다시 쓰는 모든 Url 을/~quux/foo/...면/~quux/bar/....실제로 프로그램 할 수 있습니다 당신이 무엇을 좋아합니다.하지만 이런 맵을 사용할 수 있도 평균하여 사용자고 하더라고,오직 시스템 관리자만으로 정의 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top