2012-09-05 4 views
0

ok, 그래서 저는 SO와 다른 곳에서 찾은 많은 것들을 시도했지만, 실제로는 작동하지 않고 항상 404 오류 코드를 받았습니다.uriencoded 쿼리 문자열이 포함 된 pretty url의 mod_rewrite

나 URL을 입력하고 싶습니다 :

$pic = ($_GET["pic"]); 
$title = ($_GET["title"]); 

다음의 index.php 페이지가 찾고있는

memorizeit.com/pics/index.php?pic=220.0.8251.20120905002352.7982368227&title=Jameson+tested+the+MemorizeIt%21+Android+app%3A+With+Facebook+%26+Twitter 

:에

memorizeit.com/pics/220.0.8251.20120905002352.7982368227/Jameson+tested+the+MemorizeIt%21+Android+app%3A+With+Facebook+%26+Twitter.+Getting+grass+stains. 

을하고 보이지 않게 변환이/pics 디렉토리의 .htaccess 파일에 다음과 같은 내용이 있습니다.

RewriteEngine on 
Header set Cache-Control "max-age=2592000" 
RewriteRule ^pics/([^\/]*)/([^\/]*)/([^\/]*)$ /pics/index.php?pic=$1&title=$2&extra=$3 [L,QSA] 
RewriteRule ^pics/(.+)/(.+)$ /pics/index.php?pic=$1&title=$2 [L,QSA] 
RewriteRule ^pics/([^\/]*)$ /pics/index.php?pic=$1 [L,QSA] 

QSA를 사용하지 않고 시험해 보았습니다. + (anything)과 [^ /] * (/를 제외한 모든 것) 두 가지를 모두 넣어 두었습니다. 그들 거기 (나는 생각한다!). $ 1에 숫자와 마침표 만 포함 시키도록 계획하고 있지만, 처음에는 제대로 작동하도록하고 싶습니다.

왜 작동하지 않는지 알 수 없습니다.

RewriteCond %{SERVER_PORT} ^80$ 
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L] 

을 그리고 항상 HTTPS로 리디렉션 그래서 .htaccess 파일을 읽을 알고 : 내 기본 URL htaccess로 파일에서 나는 있습니다. 나는 그 밖의 무엇을 시도해야할지 모른다. 어떤 생각이라도 대단히 감사하겠습니다. 감사!

답변

0

pics /가 실제 디렉토리이기 때문에 재 작성이 더 어려워서 그냥 다시 작성하고 다시 작성하는 것보다 낫다고 나타났습니다. 그래서 나는 pics /를 일치하는 문장으로 바꾸고 규칙을 기본 .htaccess 파일로 옮겼다. 그리고 그것은 예상대로 작동한다.

오랜 시간이 걸리는 와우 ... 다른 사람이 시간을 절약하기를 바랍니다.