2013-02-27 54 views
1

這是我的.htaccess文件中的代碼,它位於我的共享主機的根目錄中。.htaccess入侵共享主機上的域添加

RewriteEngine On 
RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 
RewriteCond %{REQUEST_FILENAME}!-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([a-zA-Z0-9\-]+)?$ interest.php?interest=$1 [QSA,L] 
RewriteRule ^([a-zA-Z0-9\_\-]+)?/$ interest.php?interest=$1 [QSA,L] 

問題是,在同一個目錄中存在我添加域的文件夾。當我嘗試訪問它們時,第二行創建問題並將其重定向到我的主域。我希望.htaccess隻影響根文件夾而不影響它的子文件夾。我嘗試閱讀其他類似的問題,並嘗試相應地更改我的htaccess,但問題仍未解決。

例如。 其重定向

mysubdomain.mydomain.com 

www.mydomain.com/mysubdomainfolder 

回答

1

有你的第一條規則是這樣的:

RewriteCond %{HTTP_HOST} ^mydomain\.com$ [NC] 
RewriteRule^http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

然後清除瀏覽器緩存並重新啓動瀏覽器。

0

好,.htaccess文件的目的是遞歸應用。

如果您不想重定向,或者您需要它們時使用備用重寫規則,您可以嘗試在每個子文件夾中添加.htaccess,這些子文件夾對應於添加RewriteEngine Off的域。

此外,您可能要添加其他重寫條件的規則,說你的域添加爲blah.com您可以添加

的RewriteCond%{HTTP_HOST}!^(。*)?blah.com

編輯:我應該添加新的重寫條件應該在下面RewriteCond%{HTTP_HOST}!^ www。

Edit2:好的,那麼子域名。在這種情況下,您基本上需要添加一個重寫條件,指定不應用重寫規則(如果它是已知的子域)。例如:

RewriteEngine On 
RewriteCond %{HTTP_HOST} !^www\. 
RewriteCond %{HTTP_HOST} !^(subdomain1|subdomain2|subdomain3)\.domain\.com 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 

現在subdomain1.domain.com不會重定向(或subdomain2/3),www.domain.com不會重定向,但任何東西都不會。

+0

在Edit2中查看我的更新 – yoshiwaan 2013-02-28 02:45:34