以下.htaccess代码是否正确?它用于SEO目的。我在谷歌发现它,但我想确定它可以使用。它放在.htaccess文件中,用于强制非斜杠URL上的斜杠。另外,具体来说,/ $ 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
将"图A" RewriteRule也强制使用
的尾部斜杠http://www.domain.com/category/post-one
如果没有,你如何添加一个分组,以便你可以做/ $ 1 / $ 2 / thing?
你会建议做/ $ 1 / $ 2 /件(用于搜索引擎优化)吗?这样做有什么害处吗?
答案 0 :(得分:1)
具体来说,/ $ 1 / $ 2 /部分是正确的吗?
不,你将被重定向到有2个斜杠,因为$2
没有反向引用任何东西。 $1
反向引用(.*)
,但您没有第二个分组。你只需要:
RewriteRule ^(.*)$ /$1/ [L,R=301]
我是否还需要为非www网址添加RewriteRule(见下文)?
不,RewriteRule
指令的第二个参数是目标,因此除非您想将人员重定向到domain.com
而不是www.domain.com
否则需要添加任何内容。
另外,你是否只需要在.htaccess的最顶端使用下面的ONCE?
是
要测试,只需添加您的htaccess文件并转到不带斜杠的URL。浏览器应该被重定向,您将在位置栏中看到相同的URL,但带有一个尾部斜杠。如果这不是你所看到的,那就是其他错误。