실제 디렉터리에 디렉터리 슬래시를 추가하는 방법을 알고 있지만 가상 디렉터리에 후행 슬래시를 추가해야합니다. 따라서 사용자가 example.com/website/blog/을 방문 할 때 example.com/website/blog/entries/ 여기htaccess를 사용하여 가상 디렉터리에서 디렉터리 슬래시를 강제 적용
내 현재 작업 htaccess로 코드가 작동합니다 : (이/블로그 &가/항목은 모두 가상 디렉터리 있습니다), URL 주소를 물리적으로 변경됩니다 엔트리 가짜/가상 디렉토리를 PHP 스크립트의 매개 변수로 변환하기 :
RewriteRule ^/?([a-zA-Z_\-/.]+)$ index.php?file=$1 [L,QSA]
이 RewriteRule의는 example.com/website/blog/entries/보기 PHP에 example.com/website/index.php?file=blog/entries/ 같은 단지가 아닌 사용자에게 있습니다. 여기
내가 아무 소용이 함께 작동하도록 시도 다시 쓰기 규칙의 일부입니다 :RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .*[^/]$ %{REQUEST_URI}$1/ [L,R=301]
# -----------------------------------------------
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^.+/$ %1 [R=301,L]
나는 매개 변수에 가상 디렉터리를 변환 내 현재 정규식 시작하는 디렉토리 이름을 찾습니다 때문에 문제가 생각 "/"를 사용하여 사이트가 루트 폴더 ("/")에 설치되어 있지 않거나 슬래시가없는 경우에는 완전히 잘못된 것으로 리디렉션됩니다. 경로가 끊임없이 바뀌기 때문에 폴더 경로를 htaccess 파일의 아무 곳에 나 쓸 수 없습니다. PHP 매개 변수에 가상 디렉터리를 변환 전에
RewriteRule ^(.*)$ http://localhost:8888/project/$1/ [L,R=301]
실제에 후행 슬래시를 강제 할 수있는 방법이 있나요 및 가상 디렉터리, 예를 들어, 내가 좋아하는 뭔가를 사용할 수 없습니다?
이 완벽에 가까운, 그리고 내가 정적 디렉터를 사용하지 않도록해야한다를 제외하고, 내 질문에 대한 대답 y 이름. 요청을 통해 .htaccess 파일이있는 디렉토리를 얻는 방법을 알고 있습니까? % {REQUEST_DIR}과 (와) 같이 "/ project /"를 물리적으로 쓰지 않고 디렉토리의 이름을 얻을 수 있습니까? 대답 해줘서 고마워! –
@deraad 업데이트 된 답변보기 하드 코드 된/projects /' –
하드 코드 된/project/"이름을 사용하지 않고 사용해 보았지만 잘못된 위치로 리디렉션되기 때문에 작동하지 않습니다. . 대신 htaccess 파일을 설치 한 사이트의 하위 디렉토리 이름으로 PHP 스크립트를 작성했습니다. –