2011-01-05 1 views
0
나는이 정말 간단 .htaccess 파일로 내 문제를 찾을 수 없습니다

표시 :한 번 더 : htaccess로 -의 RewriteRules 작동하지만, 브라우저의 주소 표시 줄 전체 (비우) URL

Options -Indexes 
Options +FollowSymLinks 
RewriteEngine on 
RewriteBase /d/ 
`#`drupal style url rewriting 
RewriteRule ^([^.]*)$ index.php?path=$1 [L] 

그것은위한 작품으로 슬래시가없는 루트 URL을 제외한 모든 것. 그래서 다시 작성 및 ?path= (blank)하지만 localhost/d 작품으로 ?path=x/y/zlocalhost/d/x/y/zlocalhost/d/ 내 페이지에 숨겨진 가져 오기 쿼리 문자열을 통과,하지만 지금은이 추악한 괴물로 주소 표시 줄에 나타납니다

http://localhost/d/?path=/Users/audiozoom/Documents/webroot/d 

어떤 문제가 될 수 있을까?

답변

0

상단에 조건부 규칙을 추가하여 수정되었습니다.

RewriteRule ^.*$ index.php [L]

RewriteCond %{REQUEST_URI} /d$

하지만 지금 내 htaccess로 두 번 기본 폴더가 있기 때문에 나는 모두가 그것을 좋아하지 않아. 어쩌면 누군가가 더 나은 해결책을 찾을 수 있습니다.

0

규칙 끝에 [QSA]을 추가하십시오. 그러면 전체 쿼리 문자열이 자동으로 전달됩니다.

+0

작동하지 않았습니다. 이 전체 querystring도 이상합니다. 일반적으로 내 사이트 루트에 대한 경로 뒤에 모든 것을 표시합니다. –

0

PHP 코드가 요청을 리디렉션하지 않았는지 확인하십시오. 재 작성 규칙에 index.php?path=이 표시되지만 표시되는 URL은 ?path=입니다. 이는 리디렉션으로 인해 발생할 수 있습니다.

+0

고마워,하지만 위의 코드와 index.php 만있는 .htaccess는'echo "경로가 유일한 줄입니다 :". $ _ GET [ 'path'];' 당신의 제안은 사실이 아닙니다. –

관련 문제