답변

0

# 기호가 urlencoded로되어 당신이 /#/비디오/내 최초의-VID/로 리디렉션에 대한 mod_rewrite를 사용할 수 없습니다 보인다 그것을 당신이 찾고하지 무엇을 분명히하는 http://example.com/%23/video/my-first-vid/로 리디렉션됩니다 에 대한. 전에 아파치 1.3에서 몇일을 테스트했다.

리디렉션을위한 별도의 스크립트를 만들 수 있습니다.

RewriteRule ^video/?$ /redirector.php?page=video [NC,L,QSA]  
RewriteRule ^video/(.*)$ /redirector.php?page=video&subpage=$1 [NC,L,QSA] 

그러나이 같은 떨어지게 될 수 있기 때문에 당신은 또한 수동으로 쿼리 문자열을 구문 분석해야 할 수도 있습니다 : 이것에 대한 새로운 규칙을 추가

<?php 
    $page = (isset($_REQUEST["page"])) ? trim($_REQUEST["page"]) : ""; 
    $subPage = (isset($_REQUEST["subpage"])) ? trim($_REQUEST["subpage"]) : ""; 

    // setting the redirect URL, your conditions here 
    if ($page == "video") 
    { 
    $url = "/#/video/" . $subPage; 
    } 
    else 
    { 
    $url = "/"; // some default url 
    } 

    header("Location: " . $url); 
    exit; 
?> 
:

/video/my-first-vid/?refID=test 

여기에 PHP에 대한 몇 가지 간단한 예제

+1

와우, 고마워! 그 좋은 예입니다. 그러나 나는'RewriteRule^(\ w +)/(\ w +) /? $/#/$ 1/$ 2/[NE, R, L]'일하는 방법을 우연히 발견했다. ** mydomain.com/video/video1 ** ~ ** mydomain/#/video/video1 ** 플래그가 해시 (#)를 통과시킬 수 있다고 생각합니다. 이 모든 SEO 문제가 발생할 수 있습니다 생각하십니까? – JCraine

+0

@JCraine modrewrite 규칙이 실제로 문제를 해결 한 후 [NE] 플래그 (출력의 URI 이스케이프 없음). 그래서 이전 솔루션으로 귀찮게 할 필요가 없습니다. 플래그 하나를 추가하십시오 :) 감사합니다! –

0

가 나는 URI에서 '#'을 삽입에 대해 잘 모르겠지만, 당신이 시도 할 수 :

RewriteRule "^(?<!#/)(.*)" "#/$1" [R=301,L] 

이없는 것도 리디렉션해야 '/ #'앞에는 같은 위치에 이 있고 앞에 '/ #'이 있습니다.

+0

불행히도 나에게 도움이되지 못했지만 다음과 같은 좋은 결과를 얻었습니다. RewriteRule^(\ w +)/($ w /) /? $/#/$ 1/$ 2/[NE, R, L] – JCraine

+0

@JCraine 네,'.htaccess' 태그를 놓쳤습니다. 나는 그 해답을 적절히 수정했다. – RoUS

+0

친절한 URL을 사용하면 링크를 지정한 경우; mysite/video/mysite.com/video?id=20로 이동하려면 검색 엔진에서 첫 번째 URL을 올바르게 가져 옵니? – JCraine