Php 在.htaccess中强制使用尾部斜杠?

Php 在.htaccess中强制使用尾部斜杠?,php,wordpress,.htaccess,mod-rewrite,url-rewriting,Php,Wordpress,.htaccess,Mod Rewrite,Url Rewriting,下面的.htaccess代码正确吗?它是用于搜索引擎优化的目的。我在谷歌找到了它,但我想确定它是否可以使用。它放在.htaccess文件中,用于在非斜杠URL上强制使用斜杠。另外,具体来说,/$1/$2/零件是否正确 #Force Trailing Slash RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !(.*)/$ RewriteRule ^(.*)

下面的.htaccess代码正确吗?它是用于搜索引擎优化的目的。我在谷歌找到了它,但我想确定它是否可以使用。它放在.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 url包含重写规则(见下文)

另外,您是否只需要在.htaccess的最顶端有一次下面的内容

RewriteEngine On
RewriteBase /
另外,如何测试此代码是否确实有效?我将代码放在.htaccess文件中,但我的主页不显示尾随斜杠

编辑:后续问题:

图A

RewriteRule ^(.*)$ http://www.domain.com/$1/
“Figure A”重写规则是否只强制为

http://www.domain.com/post-one  
“Figure A”重写规则是否也会强制为

http://www.domain.com/category/post-one
如果没有,如何添加分组,以便执行/$1/$2/操作?
你会建议做/$1/$2/的事情吗(为了SEO目的)?这样做有什么害处吗

具体来说,/$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] 
不,您将被重定向为有两个尾部斜杠,因为
$2
不反向引用任何内容<代码>$1反向引用
(.*)
,但您没有第二个分组。你只需要:

RewriteRule ^(.*)$ /$1/ [L,R=301] 
我是否还需要为非www url包含重写规则(见下文)

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

另外,您是否只需要在.htaccess的最顶端有一次下面的内容

RewriteEngine On
RewriteBase /


要进行测试,只需添加htaccess文件并转到一个不带尾随斜杠的URL。浏览器应该被重定向,您将在位置栏中看到相同的URL,但后面有一个斜杠。如果这不是你所看到的,那就是其他地方出了问题。

Jon谢谢你的明确回答。两个问题。除了这个.htaccess代码之外,我还在MySQL数据库siteurl和home url中添加了一个尾随斜杠。---但仍显示为不带尾随斜杠。但是,其他所有内容(如帖子和类别)都会显示尾随斜杠。---有什么不对劲吗?主页是否应显示为不带尾随斜杠?---另外,你能在我上面的帖子“编辑”下查看我的“后续问题”吗?@leko,如果你的意思是
http://domain.com
作为“主页”,htaccess对此无能为力。在这两种情况下,重写模块看到的请求都是
/
。至于
(.*)
问题,它匹配所有内容,包括
/blah
/blah/blah/blah/blah/blah/blah/blah
。它匹配所有内容。Jon关于“htaccess不能做任何事情”主页URL非斜杠——你是说这个htaccess代码只会导致子页面(如www.domain.com/post/)的结尾斜杠,而不会导致主页www.domain.com的结尾斜杠?你能解释一下原因吗?@leko请求
http://domain.com
http://domain.com/
apache看起来完全一样,因此无法将一个重定向到另一个