Php 在.htaccess中强制使用尾部斜杠?
下面的.htaccess代码正确吗?它是用于搜索引擎优化的目的。我在谷歌找到了它,但我想确定它是否可以使用。它放在.htaccess文件中,用于在非斜杠URL上强制使用斜杠。另外,具体来说,/$1/$2/零件是否正确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 ^(.*)
#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看起来完全一样,因此无法将一个重定向到另一个