我想重定向页面博客
www.example.com/blog/ to www.example.com/blog
www.example.com/es/blog/ to www.example.com/es/blog
www.example.com/en/blog/ to www.example.com/en/blog
我有这个,但不起作用
RewriteCond %{HTTP_HOST} ^example\.com/blog/$
RewriteRule (.*) http://www.example.com/blog/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^example\.com/en/blog/$
RewriteRule (.*) http://www.example.com/en/blog [R=301,L]
RewriteCond %{HTTP_HOST} ^example\.com/es/blog/$
RewriteRule (.*) http://www.example.com/es/blog [R=301,L]
答案 0 :(得分:0)
由于无效模式,您的RewriteConditions失败:
RewriteCond %{HTTP_HOST} ^example\.com/blog/$
上述条件表示如果主机值为 example.com/blog / ,则此条件返回false,因为http_Host仅表示域名,部分名称是Request_uri的一部分,它可以不能使用http_host变量进行操作。
你可以这样做:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteCond %{REQUEST_URI} ^/blog/$
RewriteRule ^(.*)/?$ /blog [NC,L,R]
上面的示例重定向:
到
如果要删除除现有目录之外的所有请求的尾部斜杠,可以使用以下内容:
RewriteEngine on
#if trailing slash
RewriteCond %{REQUEST_URI} /$
#redirect the request to remove the trailing slash
RewriteRule ^(.+)/?$ /$1 [L,R]