Redirect 如何重定向到没有斜杠的位置?

Redirect 如何重定向到没有斜杠的位置?,redirect,Redirect,我想重定向网页博客 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.exam

我想重定向网页博客

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]

由于模式无效,您的重写条件失败:

RewriteCond %{HTTP_HOST} ^example\.com/blog/$
上面的条件表示,如果主机值为example.com/blog/,则此条件返回false,因为http\u host仅表示域名,域名后的部分是请求uri的一部分,不能使用http\u host变量对其进行操作

您可以这样做:

RewriteEngine on


RewriteCond %{HTTP_HOST} ^example\.com$
RewriteCond %{REQUEST_URI} ^/blog/$
RewriteRule ^(.*)/?$ /blog [NC,L,R]
上面的示例重定向:

  • example.com/blog/

  • example.com/blog
如果要删除除现有目录之外的所有请求的尾部斜杠,可以使用以下命令:

RewriteEngine on


#if trailing slash  
RewriteCond %{REQUEST_URI} /$
 #redirect the request to remove the trailing slash
RewriteRule ^(.+)/?$ /$1 [L,R]

由于模式无效,您的重写条件失败:

RewriteCond %{HTTP_HOST} ^example\.com/blog/$
上面的条件表示,如果主机值为example.com/blog/,则此条件返回false,因为http\u host仅表示域名,域名后的部分是请求uri的一部分,不能使用http\u host变量对其进行操作

您可以这样做:

RewriteEngine on


RewriteCond %{HTTP_HOST} ^example\.com$
RewriteCond %{REQUEST_URI} ^/blog/$
RewriteRule ^(.*)/?$ /blog [NC,L,R]
上面的示例重定向:

  • example.com/blog/

  • example.com/blog
如果要删除除现有目录之外的所有请求的尾部斜杠,可以使用以下命令:

RewriteEngine on


#if trailing slash  
RewriteCond %{REQUEST_URI} /$
 #redirect the request to remove the trailing slash
RewriteRule ^(.+)/?$ /$1 [L,R]