删除斜杠wordpress网站网址

时间:2014-07-29 00:32:56

标签: wordpress .htaccess mod-rewrite backslash trailing-slash

我将wordpress永久链接设置为/%postname%(注意最后没有尾部斜杠)。

但是,wordpress不会将任何给定页面URL从具有尾部斜杠的版本重定向到非尾部斜杠版本。任何网站标题检查工具都会返回两个版本的'200'(OK)代码(带或不带尾部斜杠)。我担心由于内容重复,这会产生负面的SEO后果。因此,我希望每个页面只有一个版本。

我正在尝试修改位于wordpress目录中的.htaccess文件,因此它删除任何URL末尾的尾部斜杠,几乎重定向到URL的非尾部斜杠版本。

我将Wordpress安装在不在我网站根目录的子目录上,即

http://mywebsite.com/wordpress/

我尝试了以下代码,我通过阅读本网站上发布的不同问题编写了这些代码:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]

RewriteRule ^(.*)/$ /$1 [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>

问题是我无法登录wordpress admin。当我在mywebsite.com/wordpress/wp-login.php

上输入我的用户名和密码时

它通常用于重定向并输入mywebsite.com/wordpress/wp-admin /

但是现在,由于我添加到.htaccess的代码正在从/ wp-admin /中删除尾部斜杠,然后我收到错误并且无法登录到Wordpress。

我一直在阅读这个论坛,然后通过玩代码尝试以下内容,现在我可以登录到wordpress,但现在不会从任何给定的URL中删除尾部斜杠。

 <IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteBase /wordpress/
 RewriteRule ^index\.php$ - [L]

 RewriteCond %{REQUEST_URI} !^/wp-admin/
 RewriteCond %{REQUEST_URI} ^/wp-login\.php(.*)$
 RewriteCond %{REQUEST_URI} ^/wp-admin$
 RewriteRule ^(.*)/$ /$1 [L,R=301]

 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule . /wordpress/index.php [L]
 </IfModule>

任何人都可以推荐我还能做些什么吗?

除了wordpress登录页面(mywebsite.com/wordpress/wp-login.php)和mywebsite.com/之外,如果页面URL没有在URL末尾有一个斜杠,那么几乎所有我想要的东西的wordpress /可湿性粉剂管理员/

请记住,Wordpress安装在mywebsite.com/wordpress/上,而不是在根级别。

非常感谢!

1 个答案:

答案 0 :(得分:0)

请尝试以下规则:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]

RewriteRule ^((?!wp-admin/).+?)/$ /$1 [NC,NE,L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
</IfModule>