2012-11-09 4 views
0

htaccess 규칙을 작성하는 데 처음입니다. 내 목표는 모든 상대 링크가 절대 경로로 리디렉션되도록하는 것입니다.htaccess RewriteRule 페이지가 제대로 리디렉션되지 않습니다.

RewriteEngine On 

RewriteRule gallery\.php$ http://www.domain.com/sample/gallery.php 
RewriteRule info\.php$ http://www.domain.com/sample/gallery.php 

첫 번째 규칙은 파이어 폭스가 두 번째 규칙은 잘 작동하는 동안이 링크를 클릭하면 "페이지를 제대로 리디렉션되지 않는다"오류가 발생합니다 : 우선 내가 테스트를했다. 미래를위한 아이디어는 같은

RewriteRule catchAllRelativeLinks$ http: //www.domain.com/sample/$1 

을 규칙을 작성했지만, 난 내가 생각하지 않는 첫 번째 규칙 작업을 할 수없는 경우 나는 진짜 규칙을 만드는 방법을 찾을 수 있습니다.

EDIT : 끝없는 루프를 피하기 위해 변수를 잡아서 첫 번째 또는 두 번째 등분 할 경우 이해할 수 없습니까? 일부 내가 노력 아이디어 (및 faild는) :

RewriteCond %{IS_SUBREQ} false 
RewriteRule ^gallery\.php$ http://www.domain.com/gallery.php?a [R=302,L] 

RewriteCond %{THE_REQUEST} !(\?something)$ 
RewriteRule ^gallery\.php$ http://www.domain.com/gallery.php?something [R=302,L] 

또는 환경 변수

,

덕분에 다시

+0

이/gallery.php''/ 샘플/gallery.php'로 리디렉션하는'에 대한 의미입니다 :

https://wiki.apache.org/httpd/RewriteHTTPToHTTPS

나를 위해 (근무 ? 그렇다면'^ gallery '.php $와 같이'^'를 포함해야합니다. –

+0

이 설명을 체크 아웃하고 가이드 할 수 있습니다 (: http://stackoverflow.com/a/21754308/5465790 – Sonu

답변

1

첫 번째 규칙 당신은 무한 루프에서 결과가 있습니다. mod_rewrite은 절대적인 상대 링크를 만드는 데 그다지 좋지 않습니다. 그것은 HTML에서 이루어져야합니다. 예를 들어, 그것은 매우 잘 수행 mod_rewrite 무언가를하기 때문에 두 번째 규칙이 작동하지만

<a href="/sample/gallery.php">Gallery</a> 

<a href="gallery.php">Gallery</a> 

을 돌려, 그리고 다른 한 페이지 또는 URL로 리디렉션합니다. 이에 대한 자세한 내용은 Apache documentation을 참조하십시오.

+0

). 무한 루프는 IS SUBREQ를 붙잡거나 param을 잡아 끌 수 없습니까? 질문을 편집했습니다. – Riccardo

+0

그래, 단 한 번만 리디렉션 할 수있는 것 같습니다. – Geremia

0

자세한 내용은이 링크를 체크 아웃 할 수 있습니다. ?

일치하도록 처음이다 무엇
 

    RewriteEngine on 

    # Check for POST Submission | 
    # Because POST parameters aren't retained on a redirect. 
    # You can omit that line if you want to make sure that all POST submissions are secure 
    # (any unsecured POST submissions will be ignored) 
    RewriteCond %{REQUEST_METHOD} !^POST$ 

    # Forcing HTTPS 
    RewriteCond %{HTTPS} !=on [OR] 
    RewriteCond %{SERVER_PORT} 80 
    # Pages to Apply 
    RewriteCond %{REQUEST_URI} ^something_secure [OR] 
    RewriteCond %{REQUEST_URI} ^something_else_secure 
    RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L] 

관련 문제