0

我设置了一个特定的域来重写到一个文件夹中,如下所示,但在 Google Analytics 的那个文件夹中出现了一些人。

简而言之:/c/ -> 来自域时的 root,但 GA 仍然在访客流中显示 domain/c/

根.htaccess:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?certain-domain.com$ [NC]
RewriteCond %{REQUEST_URI} !c/ [NC]
RewriteRule ^(.*)$ /c/$1 [L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
RewriteCond %{REQUEST_FILENAME}\.png -f
RewriteRule ^(.*)$ $1.png
RewriteCond %{REQUEST_FILENAME}\.txt -f
RewriteRule ^(.*)$ $1.txt    
Options -Indexes

和 /c/ 的 .htaccess 只是一个编辑过的html5boilerplate,唯一的区别是上面相同的 php 和 txt 重写。

但是在 Google Analytics 上,我一半以上的访问者仍然在 /c/index.php 上结束。

访客流量:http: //i.imgur.com/JwtcTFI.png

我没有在我的 URL 中看到 /c/,所以我真的不知道发生了什么。

有任何想法吗?我确实使用相对 URL(这是一个坏主意吗?),这样会导致流程在 /c/ 文件夹中继续。

谢谢您的帮助!

4

2 回答 2

1

您的规则不会阻止人们直接访问/c/whatever. 如果你想防止这种情况,你需要添加一个额外的规则:

RewriteCond %{THE_REQUEST} \ /c/
RewriteRule ^c/(.*)$ /$1 [L,R=301]
于 2013-08-14T05:37:32.883 回答
0

哦,我找到了答案!似乎www.domain 正在重定向到 domain/c/index.php。我有一个重写规则来删除 /c/.htaccess 中的“www”,而不是根 .htaccess。

我通过添加代码来修复它,以在域>>目录重写之前删除根 htaccess 中的“www”。(之后似乎没有工作)

我添加了

RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]

以上

RewriteCond %{HTTP_HOST} ^(www.)?certain-domain.com$ [NC]
RewriteCond %{REQUEST_URI} !c/ [NC]
RewriteRule ^(.*)$ /c/$1 [L]

(在根 htaccess 中)

编辑:它也可能与(www.)有关,由于冗余,我放弃了它。现在只是RewriteCond %{HTTP_HOST} ^certain-domain.com$ [NC]

我还在 /c/ .htaccess 中为 /c/ 添加了对 root 的重写:

RewriteCond %{THE_REQUEST} ^(GET|HEAD)\ /c/
RewriteRule ^(.*)$ /$1 [L,R=301]  
于 2013-08-14T15:46:45.563 回答