我只是想重写并自动重定向:
来自mysite.com/sub/index.php?channel=rai1
至mysite.com/sub/channel-rai1.html
我试过这个:
RewriteRule ^sub/channel-([^/]*)\.html$ /sub/index.php?channel=$1 [L]
但问题是重定向不会发生。为什么呢?
答案 0 :(得分:0)
将重写规则更改为:
RewriteRule ^sub/channel-([^/]*)\.html$ /sub/index.php?channel=$1 [R=301]
会奏效。您正在编写规则,但您并没有告诉它在浏览器中更改它。
[L]
告诉它停止应用后面的任何规则。 [R=301]
将实际重定向url到新的url并告诉浏览器/搜索引擎新url是永久使用的url。您可以使用[R=301, L]
将两者合并。
编辑: 我读错了这个问题,道歉
RewriteEngine On
RewriteCond %{THE_REQUEST} ^(GET|POST)\ /sub/index\.php\?channel=(.*)&data=(.*)\ HTTP
RewriteRule ^sub/index.php /sub/channel-%2-%3.html? [R,L]
#Internal rewrite
RewriteRule ^sub/channel-([^/]*)-(.*)\.html$ /sub/index.php?channel=$1&data=$2 [L]
以上内容应将http://example.com/sub/index.php?channel=NBC&data=2012/02/12
更改为http://example.com/sub/channel-NBC-2012/02/12.html