我想知道這是否可能在mod_rewrite,如果有人知道它的語法。mod_rewrite深入鏈接的網址
瀏覽器接收:
http://example.com/video/my-first-vid/
的mod_rewrite重定向到:
http://example.com/#/video/my-first-vid/
謝謝!
我想知道這是否可能在mod_rewrite,如果有人知道它的語法。mod_rewrite深入鏈接的網址
瀏覽器接收:
http://example.com/video/my-first-vid/
的mod_rewrite重定向到:
http://example.com/#/video/my-first-vid/
謝謝!
似乎爲#符號url編碼,你不能使用mod_rewrite重定向到/#/視頻/我先VID/,它會重定向到http://example.com/%23/video/my-first-vid/這顯然是你要找什麼不對於。我在Apache 1.3上測試了這兩天。
您可以爲重定向創建單獨的腳本。添加新的規則是:
RewriteRule ^video/?$ /redirector.php?page=video [NC,L,QSA]
RewriteRule ^video/(.*)$ /redirector.php?page=video&subpage=$1 [NC,L,QSA]
但是,您可能還需要手動解析查詢字符串,因爲它可能是水木清華這樣的:
/video/my-first-vid/?refID=test
下面是關於PHP一些簡單的例子:
<?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;
?>
我不知道如何嵌入URI中的「#」,因爲這通常是一個片段標識符,但你可以試試這個:
RewriteRule "^(?<!#/)(.*)" "#/$1" [R=301,L]
這應該重定向任何不有一個'/#'前面的與'/#'在它的前面。
不幸的是沒有爲我工作,但我確實得到了一些好的結果,如下所示:RewriteRule ^(\ w +)/(\ w +)/?$ /#/ $ 1/$ 2/[NE,R,L] – JCraine 2011-02-07 23:41:14
@JCraine是的,我錯過了`.htaccess`標籤。我已經適當修改了答案。 – RoUS 2011-02-09 15:44:47