繁体   English   中英

.htaccess中的强制尾部斜杠?

[英]Force Trailing Slash in .htaccess?

下面的.htaccess代码正确吗? 它用于SEO。 我在Google中找到了它,但我想确定它可以使用。 它放置在.htaccess文件中,用于在非斜杠URL上强制斜杠。 另外,// 1/1 / $ 2 /部分正确吗?

#Force Trailing Slash
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://www.domain.com/$1/$2/ [L,R=301] 

我是否还需要为非www网址包含RewriteRule(请参见下文)?

RewriteRule ^(.*)$ http://domain.com/$1/$2/ [L,R=301] 

此外,是否真的需要在.htaccess的最顶部具有下面的ONCE?

RewriteEngine On
RewriteBase /

另外,如果该代码确实有效,您如何测试? 我将代码放在.htaccess文件中,但我的主页上没有显示斜杠。

编辑:后续问题:

图A

RewriteRule ^(.*)$ http://www.domain.com/$1/

“图A”重写规则是否仅对

http://www.domain.com/post-one  

将“ Figure A”的RewriteRule也强制为

http://www.domain.com/category/post-one

如果没有,如何添加分组以便可以执行/ $ 1 / $ 2 /事情?
您是否建议做/ $ 1 / $ 2 /事(用于SEO)? 这样做有什么危害吗?

具体来说,/ $ 1 / $ 2 /部分正确吗?

不,您将被重定向为带有两个尾部斜杠,因为$2不会反向引用任何内容。 $1向后引用(.*)但没有第二个分组。 您只需要:

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

我是否还需要为非www网址包含RewriteRule(请参见下文)?

不, RewriteRule指令的第二个参数是target ,因此除非您希望将人们重定向到domain.com而不是www.domain.com ,否则无需添加任何内容。

此外,是否真的需要在.htaccess的最顶部具有下面的ONCE?

要进行测试,只需添加您的htaccess文件并转到不带斜杠的URL。 浏览器应该被重定向,您将在位置栏中看到相同的URL,但带有斜杠。 如果那不是您所看到的,那是其他错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM