2013-03-13 79 views
0

我在http://www.mysite.com/test/ .htaccess文件,我想用來發送任何人訪問http://mysite.com/test/http://www.mysite.com/test/,但它沒有工作,這是我的代碼:重定向非www到www的子目錄

# Force Caching 
Header unset Pragma 
FileETag None 
Header unset ETag 
<FilesMatch "\.(ico|jpg|jpeg|png|gif|js|css|swf|pdf|flv|mp3)$"> 
<IfModule mod_expires.c> 
ExpiresActive on 
ExpiresDefault "access plus 14 days" 
Header set Cache-Control "public" 
</IfModule> 
</FilesMatch> 
<FilesMatch "\.(html|htm|xml|txt|xsl)$"> 
Header set Cache-Control "max-age=7200, must-revalidate" 
</FilesMatch> 

# Enable gzip compression 
<IfModule mod_mime.c> 
AddType application/x-javascript .js 
AddType text/css .css 
</IfModule> 
<IfModule mod_deflate.c> 
AddOutputFilterByType DEFLATE text/css application/x-javascript text/x-component text/html text/richtext image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon application/javascript 
<IfModule mod_setenvif.c> 
    BrowserMatch ^Mozilla/4 gzip-only-text/html 
    BrowserMatch ^Mozilla/4\.0[678] no-gzip 
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html 
</IfModule> 
<IfModule mod_headers.c> 
    Header append Vary User-Agent env=!dont-vary 
</IfModule> 
</IfModule> 


# Main Rewrite rules 
<IfModule mod_rewrite.c> 
    Options +FollowSymlinks 
    RewriteEngine On 
    RewriteBase/

    # Always use www. 
    RewriteCond %{HTTP_HOST} !^www [NC] 
    RewriteRule^http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R] 

    RewriteRule ^index\.php$ - [L] 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule . /index.php [L] 
</IfModule> 

任何如何解決這個問題的想法?

回答

1

.htaccess文件位於/test目錄中。這就是爲什麼/test/前綴在RewriteRule的請求URL模式.*中被刪除。要正確地重定向請求,必須將替換更改爲

RewriteRule^http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R] 
+0

仍然不起作用,實際上不會發生重定向。每當我訪問http://mysite.com/test/,它只是加載沒有重定向的網站。 – spyke01 2013-03-14 00:09:10

+0

@ spyke01它適用於我的測試環境。在這個或其他任何.htacces中你有其他規則嗎? – 2013-03-14 00:12:52

+0

我已經用完整的.htaccess編輯了上面的帖子。主目錄中可能有一個.htaccess文件,但我必須等待訪問。 – spyke01 2013-03-14 01:16:37