mod_rewrite用?在YouTube等原始网址中

时间:2011-01-19 21:34:21

标签: php .htaccess mod-rewrite

好的我想模拟YouTube网址并将其重定向到我的真实网址。原因是我使用随机字符串来制作视频ID,因此它们无法通过序列进行猜测。 我有这样的链接

http://www.mysite.com/watch?v=Dxdotx3iT1

并希望重定向到

http://www.mysite.com/index.php?page=videos&section=view&v=Dxdotx3iT1

似乎无法弄清楚mod重写。还用了?我相信它会做点什么。

任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:4)

您需要使用[QSA](附加查询字符串)标记调整RewriteRule以包含查询字符串:

RewriteRule ^watch$ index.php?page=video&section=view [QSA]

答案 1 :(得分:0)

RewriteCond %{QUERY_STRING} ^v=(.+)
RewriteRule ^watch /index\.php?page=videos&section=view&v=%1 [QSA,R=301,L]

答案 2 :(得分:0)

这些答案都不对我有用,所以最终我通过反复试验发现以下对我有用;

获取我的URL的RewriteRule如下https://www.example.com/video/watch?v=UnIq3Id

RewriteRule ^/?([A-Za-z0-9_-]+)/([A-Za-z0-9_-]+)$ index.php?page=$1&v=$2 

我发现我之前设置的以下规则使我的网址看起来像https://www.example.com/video/UnIq3Id,这会干扰我的重定向;

#RewriteRule ^/?([A-Za-z0-9_-]+)/([A-Za-z0-9_-]+)$ index.php?page=$1&v=$2

只需将其注释掉即可解决此问题,如下所示;

RewriteRule ^watch\?*$ index.php?page=video [L,QSA]

使我的URL看起来像https://www.example.com/watch?v=UnIq3Id的RewriteRule如下;

RewriteRule ^([A-Za-z0-9_-]+)/?$ index.php?page=$1 [NC]

我发现我之前设置的以下规则使我的网址看起来像https://www.example.com/video/,这会干扰我的重定向;

#RewriteRule ^([A-Za-z0-9_-]+)/?$ index.php?page=$1 [NC]

只需将其注释掉即可解决此问题,如下所示;

<question
   v-for="question in questions"
   v-bind:id="question.id"
   v-bind:title="question.title"
   v-bind:statement="question.statement"
   v-bind:interaction="question.interaction"
   @onchange-vg="onChangeVg"/>
</question>

希望它可以帮助某人并为您节省我的头痛,有时How do you write an htaccess RewriteRule to make my urls work like youtube?上人们对此问题的看法并不那么乐观。