我将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/上,而不是在根级别。
非常感谢!
答案 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>