2013-12-21 22 views
2

由於斜線問題,我的部分頁面出現重複。 E.g socktail.com/shopsocktail.com/shop/重複且可訪問。 請讓我知道如何解決這個問題。我是網絡技術新手,甚至不知道我的.htaccess文件是否正常。
以下是我的.htaccess的內容,由於尾部斜線造成的重複頁面

RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond $1 !^(index\.php|javascript|images|robots\.txt) 
RewriteRule ^(.*)$ /index.php?/$1 [L] 
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^www\.(([a-z0-9_]+\.)?socktail\.com)$ [NC] 
RewriteRule .? {REQUEST_URI} [R=301,L] 

回答

0

您可以添加一條規則去除斜線與301讓你所有的規則是這樣的:

RewriteEngine On 

# remove trailing slash 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{THE_REQUEST} \s(.+?)/+[?\s] 
RewriteRule^/%1 [R=301,L,NE] 

# existing rule 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond $1 !^(index\.php|javascript|images|robots\.txt) 
RewriteRule ^(.+)$ /index.php?/$1 [L] 
1

看起來幾乎所有請求都由您的index.php文件處理。您需要將所有帶尾隨斜槓的請求重定向到無尾斜槓的請求,否則您需要以相反的方式進行操作。在你第一次RewriteRule/RewriteCond

#Remove all trailing slashes 
RewriteRule ^(.*)/$ /$1 [R=301,L] 

或者......

#Make sure all requests end with one 
RewriteRule ^(.*[^/])$ /$1/ 

而且RewriteBase後添加規則,但。