.htaccess 301将子目录url重定向到固定子目录url
我需要重定向以下所有URL:.htaccess 301将子目录url重定向到固定子目录url,.htaccess,redirect,mod-rewrite,.htaccess,Redirect,Mod Rewrite,我需要重定向以下所有URL: /blog/blog/this-is-an-example-page/ /blog/blog/hello-how-are-you/ /blog/blog/2015/04/29/old-article/ /blog/blog/2014/09/12/ 发送至以下目录: /blog/ 然后就失去了URL的其余部分。因此,/blog/blog/这是一个示例页面/不会转到/blog/这是一个示例页面/,而是转到/blog/。这是我的.htaccess文件中应该执行此操作的
/blog/blog/this-is-an-example-page/
/blog/blog/hello-how-are-you/
/blog/blog/2015/04/29/old-article/
/blog/blog/2014/09/12/
发送至以下目录:
/blog/
然后就失去了URL的其余部分。因此,/blog/blog/这是一个示例页面/
不会转到/blog/这是一个示例页面/
,而是转到/blog/
。这是我的.htaccess文件中应该执行此操作的行,但它不起作用:
RewriteRule ^blog/blog/(.*)$ /blog/$1 [R=301,L,NC]
这是完整的.htaccess文件内容:
Options +FollowSymLinks
RewriteEngine On
# Force https and www
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.easterisland.travel/blog/$1 [R,L]
# BEGIN WordPress
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
# END WordPress
RewriteRule ^blog/blog/(.*)$ /blog/$1 [R=301,L,NC]
此文件位于/blog/dir中。
我做错了什么?为什么它不工作?您不需要与htaccess文件所在的文件夹匹配,请尝试:
RewriteRule ^blog/(.+)$ /blog/$1 [R=301,L,NC]
请尝试此Htaces:
Options +FollowSymLinks
RewriteEngine On
# Force https and www
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.easterisland.travel/blog/$1 [R,L]
# BEGIN WordPress
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteRule ^blog/(.+)$ /blog/ [R=301,L,NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
# END WordPress
将重定向规则放在其他规则之前,并修复您的
www+https
规则:
Options +FollowSymLinks
RewriteEngine On
# Force https and www
RewriteCond %{SERVER_PORT} 80 [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.easterisland.travel/$1 [R=301,L,NE]
RewriteRule ^blog/blog/(.*)$ /blog/ [R=301,L,NC]
# BEGIN WordPress
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
# END WordPress
测试此更改时,请确保完全清除浏览器缓存。谢谢您的回复,但不幸的是,它不起作用!差不多了,我的朋友!我们快到了。它现在正在重定向,但它记住了/blog/blog/*之后的URL部分,我希望它立即将其切断。因此,/blog/blog/这是一个示例页/没有转到/blog/这是一个示例页/,但是转到/blog/。效果非常好,谢谢!请注意,您没有更新顶部第一行的代码。谢谢谢谢你,但还是不行。我使用的是Chrome,每次都会打开一个新的私有会话窗口,以确保没有缓存任何内容。我正在尝试输入此URL,但没有新闻。感谢您使用正确的www+https规则提供帮助!加1