2013-01-15 2 views
0

예, 수백 번 요청되었습니다. 하지만 실제로 작동하는 버전을 찾을 수 없습니다. 현재까지 지금까지 시도한 모든 것들은 .php을 제거하는 작업을했지만, 문제가 시작될 때입니다. 내 사이트의 일부 페이지는 $_GET 요청에 따라 달라집니다 (예 : profile). http://www.example.com/profile?username=System URL로 이동하면 ?username=System 없이는 404가 표시됩니다. 내가 가진 현재의 코드는 당신은 당신의 RewriteRule의 말에 (쿼리 문자열 첨부) [QSA] 필요URL에있는 접미사를 제거하십시오.

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 
+0

당신이 알을 가지고있다 lowOrverride를 모두로 설정 하시겠습니까? xammp 및 http-conf에 있습니까? 또한 옵션 인덱스를 넣습니다 FollowSymLinks http.conf에 ExecCGI를 포함합니다 –

+0

이것은 원격 서버에서 호스팅되므로 잘 모르겠지만 페이지 시스템을 변경하기 전에이 작업이 정상적으로 수행되도록 다시 작성하십시오. 그러나 페이지는 index.php에 의해 수행 되었습니까? page = profile & username = System – ChocCookieRaider

+0

룰 세트의 조건이 일치하지 않아 404 오류가 발생합니다. 분명히 'http://www.example.com/'폴더가 없습니다. profile? username = System' 그러나 들어오는 URL에서 전달 된 매개 변수를 가져 오는 스크립트는 무엇입니까? 즉'username = System','profile' (profile.php)라는 이름의 스크립트 또는'index.php'처럼 URL에없는 스크립트가 있습니까? –

답변

2

입니다.

RewriteRule ^(.*)$ $1.php [QSA] 
+0

불행히도이 작업을 시도했지만 효과가 없습니다. 그래도 고마워. – ChocCookieRaider

+1

** 추가 **에 대한 쿼리가 없으므로 플래그가 아무 것도하지 않습니다. –

+0

@faa URL 'http : //www.example.com/profile? username = System'에 포함시킬 검색어가 가장 확실합니다. – ceejayoz

1

이 작업을 시도 할 수 있습니다 :

RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{QUERY_STRING} .  [NC] 
RewriteCond %{REQUEST_URI} ^/([^/]+) [NC] 
RewriteRule .* %1.php    [L] 

가 매핑됩니다 자동으로이

http://www.example.com/ScriptName?key1=val1

사람 :

http://www.example.com/ScriptName.php?key1=val1

+0

하나의 작은 문제를 제외하고는 완벽하게 작동합니다. 쿼리없이 페이지에 액세스하면 404 오류가 발생합니다. – ChocCookieRaider

+0

예상되는 동작이므로'RewriteCond % {QUERY_STRING}. [NC]', 예를 들어 'http : // www.example.com/ScriptName'페이지가 존재하지 않는다고 가정했기 때문에. 그러나 쿼리가없는 이름을 사용하여 해당 페이지를 스크립트에 매핑하려는 경우 규칙 집합에서 해당 행을 제거하면됩니다. –