Mod-재생 apache:변화하는 모든 Url
-
01-07-2019 - |
문제
지금은 뭔가를 하는 다음과 같다:
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/....실제로 프로그램 할 수 있습니다 당신이 무엇을 좋아합니다.하지만 이런 맵을 사용할 수 있도 평균하여 사용자고 하더라고,오직 시스템 관리자만으로 정의 할 수 있습니다.