Magento + htaccess + mod_rewrite:强制尾随斜杠&强制小写网址

时间:2012-07-16 22:04:14

标签: apache .htaccess magento mod-rewrite

我正在尝试对我的Magento商店的htaccess文件进行一些更改,以在所有不是文件且不是.html(产品页面)的URL的末尾强制使用尾部斜杠。与此同时,我也试图强制URL中的所有小写。这两个都是出于搜索引擎优化的原因,因为/ category,/ Category和/ category /的链接都被Google视为不同的页面。

以下是.htaccess的重写部分:

<IfModule mod_rewrite.c>

Options +FollowSymLinks
RewriteEngine on

RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_URI} !^/(media|skin|js)/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule .* index.php [L]

</IfModule>

我看到了这两个片段,第一个用于强制小写,第二个用于斜杠:

RewriteMap  lc int:tolower
RewriteCond %{REQUEST_URI} [A-Z]
RewriteRule (.*) ${lc:$1} [R=301,L]

和...

RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://domain.com/$1/ [L,R=301]

但是我不确切地知道如何或在何处将这些插入到现有的重写中,以便一切按预期工作。

1 个答案:

答案 0 :(得分:4)

把它放在.htaccess中:

Options +FollowSymLinks
RewriteEngine on
RewriteBase /

RewriteCond %{REQUEST_URI} [A-Z]
RewriteRule (.*) ${lc:$1} [L,R=301]

RewriteCond %{REQUEST_URI} !(.*)/$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^index.php
RewriteCond %{REQUEST_URI} !\.(html|jpg|png|gif)$
RewriteRule ^(.*)$ $1/ [L,R=301]

RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_URI} !^/(media|skin|js)/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule .* index.php [L]

</IfModule>

并将其放入您的vhost配置或httpd.conf:

RewriteMap  lc int:tolower