htaccess将动态网址重定向到静态网址

时间:2012-07-08 06:30:06

标签: php apache .htaccess redirect

我有一些网址重写了这样的内容:

RewriteRule ^futbol-video/([^/]*)-([^-]*)\.html$ /html/video.php?text=$1&id=$2 [L]

RewriteRule ^futbol-takimi/([^/]*)-([^-]*)\.html$ /html/takim.php?text=$1&id=$2 [L]

我正在尝试将动态查询重定向到静态页面。我已尝试过以下内容,但每次都会出现内部服务器错误。我怎么写规则表301重定向?

首先我尝试过:

RewriteRule ^futbol-video/([^/]*)-([^-]*)\.html$ /html/video.php?text=$1&id=$2 [R=301,L]

RewriteRule ^futbol-takimi/([^/]*)-([^-]*)\.html$ /html/takim.php?text=$1&id=$2 [R=301,L]

但是获取内部服务器错误。

1 个答案:

答案 0 :(得分:0)

我相信你正在错误地处理查询字符串。

有关使用RewriteCond处理查询字符串的一些示例,请参阅以下博客文章。

  1. http://www.simonecarletti.com/blog/2009/01/apache-query-string-redirects
  2. http://www.simonecarletti.com/blog/2009/01/apache-rewriterule-and-query-string/
  3. 博客示例:

    #Keep original query (default behavior)
    RewriteRule ^page\.php$ /target.php [L]
    # from http://example.com/page.php?foo=bar
    # to   http://example.com/target.php?foo=bar
    
    #Discard original query
    RewriteRule ^page\.php$ /target.php? [L]
    # from http://example.com/page.php?foo=bar
    # to   http://example.com/target.php
    
    #Replace original query
    RewriteRule ^page\.php$ /target.php?bar=baz [L]
    # from http://example.com/page.php?foo=bar
    # to   http://example.com/target.php?bar=baz
    
    #Append new query to original query
    RewriteRule ^page\.php$ /target.php?bar=baz [QSA,L]
    # from http://example.com/page.php?foo=bar
    # to   http://example.com/target.php?foo=bar&bar=baz
    

    修改 此外,如果您尝试将带有查询字符串的URL重定向到静态页面,则具有查询字符串的URL必须首先出现在重写规则中(或置于重写条件中),而不是像您拥有它一样。 / p>