我需要将mysite.com/all-tags?tag=[tag]重定向到mysite / [tag]
在htaccess中,我有:
RewriteCond %{QUERY_STRING} ^tag=(.*)$ [NC]
RewriteRule ^/all-tags$ /%1 [NC,L,R=301]
RewriteEngine已启用,现有的FURL规则为:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
这不能正常工作。任何人都可以了解这是不正确的?
由于
答案 0 :(得分:1)
您可以使用example.com/tag/[tag]
代替example.com/[tag]
,因为您已经拥有处理所有非文件,非目录的前端控制器index.php
:
RewriteEngine On
RewriteCond %{THE_REQUEST} /all-tags?\?tag=([^\s&]+) [NC]
RewriteRule ^ /tag/%1? [R=301,L,NE]
RewriteRule ^tag/(.+)$ all-tags?tag=$1 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]