이것이 mod_rewrite에서 가능한지 궁금해하고 누구든지 구문을 알고 있다면 궁금합니다.mod_rewrite 딥 링크의 URL
브라우저는 수신 :
http://example.com/video/my-first-vid/
mod_rewrite를 리디렉션에 :
http://example.com/#/video/my-first-vid/
감사합니다! 즉, 일반적으로 부분 식별자이기 때문에
이것이 mod_rewrite에서 가능한지 궁금해하고 누구든지 구문을 알고 있다면 궁금합니다.mod_rewrite 딥 링크의 URL
브라우저는 수신 :
http://example.com/video/my-first-vid/
mod_rewrite를 리디렉션에 :
http://example.com/#/video/my-first-vid/
감사합니다! 즉, 일반적으로 부분 식별자이기 때문에
# 기호가 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에 대한 몇 가지 간단한 예제
가 나는 URI에서 '#'을 삽입에 대해 잘 모르겠지만, 당신이 시도 할 수 :
RewriteRule "^(?<!#/)(.*)" "#/$1" [R=301,L]
이
이이없는 것도 리디렉션해야 '/ #'앞에는 같은 위치에
이 있고 앞에 '/ #'이 있습니다.
와우, 고마워! 그 좋은 예입니다. 그러나 나는'RewriteRule^(\ w +)/(\ w +) /? $/#/$ 1/$ 2/[NE, R, L]'일하는 방법을 우연히 발견했다. ** mydomain.com/video/video1 ** ~ ** mydomain/#/video/video1 ** 플래그가 해시 (#)를 통과시킬 수 있다고 생각합니다. 이 모든 SEO 문제가 발생할 수 있습니다 생각하십니까? – JCraine
@JCraine modrewrite 규칙이 실제로 문제를 해결 한 후 [NE] 플래그 (출력의 URI 이스케이프 없음). 그래서 이전 솔루션으로 귀찮게 할 필요가 없습니다. 플래그 하나를 추가하십시오 :) 감사합니다! –