2011-12-15 42 views
0

我在我正在工作的站點的子目錄中有一個.htaccess文件。它的工作原理是當URL以www開頭時,但如果缺少www,則不起作用。.htaccess mod_rewrite僅適用於www

RewriteEngine On 
RewriteBase /media 
RewriteRule ^([a-zA-Z0-9_\s\-]+)/?$ index.php?a=$1 [L] 
RewriteRule ^([a-zA-Z0-9_\s\-]+)/([a-zA-Z0-9_\s\-]+)$ index.php?a=$1&b=$2 [L] 

如果我要求http://www.mysite.com/media/test,它的工作原理,但http://mysite.com/media/test沒有。我錯過了什麼?

+0

這裏一定還有別的事情要做。你確定www.mysite.com和mysite.com都映射到Apache配置中的相同目錄嗎? – AndrewR 2011-12-15 16:49:28

回答

1

這有什麼,與你的重寫規則,這可能有事情做與你的DNS的配置方式。

嘗試ping這兩個域:有和沒有的www。

這是我做的:配置我的DNS,以便一切帶或不帶WWW被重定向到同一臺PC:

DNS configuration

然後,我通過虛擬主機的配置處理一切:

<VirtualHost *> 

    ServerAdmin [email protected] 
    DocumentRoot "/web/htdocs/olivier/livrepizzas/dev/website" 

    ServerName livrepizzas.fr 
    ServerAlias *.livrepizzas.fr 
    ... 
    ... 
    ... 
</VirtualHost> 
0
Options +FollowSymLinks 
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^www.website.com [NC] 
RewriteRule ^(.*) http://website.com%{REQUEST_URI} [R=permanent,QSA,L] 

試一下