0

我将 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/wordpress/wp 之外,如果页面 URL 在 URL 末尾没有斜杠,我几乎想要-行政/

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

非常感谢!

4

1 回答 1

1

试试这些规则:

<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>
于 2014-07-29T04:46:35.803 回答