【问题标题】:url redirecting using .htaccess使用 .htaccess 进行 url 重定向
【发布时间】:2011-08-29 03:32:38
【问题描述】:

我需要您的帮助才能使用 .htaccess 进行一些 url 重定向 情况是我有像 www.website.com/index.php?chID=1234 这样的网址,它在网站上打开特定的电视频道。 问题是我想让这些网址像 www.website.com/channel-name/1234 (其中 1234 是那个 chID 变量,从数据库中获取记录,当然没有它会更好)。 这是工作链接 - http://www.livepage.info/world-tv-channels.php?chID=1512

任何建议将不胜感激!谢谢!

【问题讨论】:

    标签: .htaccess url mod-rewrite redirect


    【解决方案1】:

    要重定向所有频道,您可以使用:

    RewriteEngine On
    RewriteBase /
    RewriteRule ^([^/]+/\d+)/$ http://www.livepage.info/$1 [L,R=302,QSA]
    RewriteRule ^[^/]+/(\d+)$ index.php?chID=$1 [L,QSA]
    

    别忘了你的 HTML 中需要一个新的 HEAD 标签(否则图片将从http://www.livepage.info/euronews-russia/images/... 获取):

    <base href="http://www.livepage.info/">
    

    当然,您可以改用 .htaccess。但是,这不如base href 标签好,因为客户端在查看不同频道时不会使用缓存,或者如果客户端被重定向,每个图像都需要两个请求等。

    RewriteRule ^([^/]+)/(images|folder2|folder3)(/.+)$ $2$3 [L]
    

    【讨论】:

      【解决方案2】:
      RewriteEngine On
      RewriteBase /
      
      RewriteRule ^channel-name/(\d+)/?$ index.php?chID=$1 [L]
      

      这会将格式为 channel-name/chID 的 URL 重定向到您提供的原始 URL,并带有可选的尾部斜杠。 chID 必须为 1 位或多位数字。

      【讨论】:

      • 非常感谢你的回答,我试过了,但效果不好,我不知道为什么..我把这个:RewriteEngine On RewriteBase / RewriteRule ^euronews- russia/(\d+)/?$ world-tv-channels.php?chID=$1 [L] 请看这里 - livepage.info/euronews-russia/1512 再次感谢您的宝贵时间。
      • P.S.以“euronews”开头的频道很少,例如“euronews”、“euronews france”、“euronews espanol”、“euronews russia”等。
      • 您可能需要转义-。试试^euronews\-russia/(\d+)/?$
      猜你喜欢
      • 2018-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-06
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      相关资源
      最近更新 更多