는 말 :하나는 재 작성 규칙을 사용
이RewriteRule ^foo/(.+?)/?$ index.php?type=foo&value=$1 [NC,L]
클라이언트는 여전히 URL을 server.dom/foo/bar/
(은 물론 합리적인 이러한 URL이의이 내부적으로 해결하는 방법에 대한 지식을 가지고 없기 때문에이 문제를보고).
그러나 index.php
페이지가 링크 (<a href="baz">link</a>
)를 생성하면 클라이언트는 server.dom/foo/bar/baz
으로 해석합니다. index.php
그러나 대부분의 경우 URL이 어디에서 유래했는지에 대한 완전한 지식이 없습니다 ...
첫 번째 아이디어는 "가상"경로의 깊이를 매개 변수로 전달하는 것입니다. 그 결과
RewriteRule ^foo/(.+?)/?$ index.php?type=foo&depth=2&value=$1 [NC,L]
, index.php
작성해야 : 따라서 재 작성 규칙 같은 것이 될 것이다
<base href="../../">
이상 공식적으로 depth
시간 ..
(슬래시로 구분). 그러나 어떤 경우에는 .htaccess
도 "가상"경로의 깊이에 대한 지식이 없습니다. 또한 다시 쓰기 규칙의 마지막 슬래시 (/
)는 선택 사항이며 슬래시가 기록되었는지 여부에 따라 깊이가 다릅니다. 이 ... 크게 RewriteRules
의 수를 증가시킬
견고이 상대 링크의 문제를 해결하는 좋은/더 나은 관행은 무엇 (아마도 이 웹 사이트의 부품을 이동한다는 의미에서 강력한하지 않습니다 "휴식"의 링크) ?
절대 경로를 상대 경로로 에뮬레이션하려고합니까? 그리고 RewriteBase와 태그에 대해 알고 있습니까? –
나는 C 매크로를 만들고'/ ext/YOUR_EXT_NAME'에있는 PHP 확장을 만들 것입니다. –
@MichaelLivach : 음, 웹 사이트의 "루트"를 모르므로 절대 링크는 옵션이 아닙니다 ... –