mod_rewrite添加尾部斜杠

时间:2014-12-09 06:13:02

标签: php linux apache mod-rewrite

我有很多网址像domain.com/something/< -notice用google编制索引的尾随斜杠,这要归功于以前的开发人员实施wordpress现在意味着我已经陷入困境,试图制作大量的SEO排名页面在新网站上进行重定向,将取代wordpress网站,并且需要具有相同的URL。

事情在我的新网站上我有一个充当catchall的页面,并进行数据库查询以检查我们是否有成员名称(上面示例URL中的/某些内容),并显示domain.com/something的内容

现在我首先想到的是通过执行以下重写规则

将其放入包中
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /membersite.php [L]

嗯这是一半的战斗我得到domain.com/something和domain.com/something/工作得很好但现在问题是我在google眼中有重复的内容在domain.com的一组内容/ domain和另一个在domain.com/something /

所以我需要修改重写,在domain.com/something/上执行301到domain.com/something。

我还应该提一下,任何其他不存在的目录或文件请求都应该重定向到domain.com而不带斜杠。

此部分工作正常,但我认为我应该提到页面memberite.php永远不会在网址中显示,而是/某些用户“个人资料”页面,只是让所有人看到整个图片

1 个答案:

答案 0 :(得分:0)

完整的工作解决方案,我终于弄清楚了它的操作顺序

RewriteEngine On
RewriteOptions inherit

RewriteBase /
RewriteRule ^index\.php$ - [L]

**RewriteRule ^(.+?)/$ $1 [R=301,L] // this part first strips the trailing slash**

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /membersite.php [L] //this part handles internally which file i'm loading from the server to process the request.