2013-08-20 103 views
0
Options +SymLinksIfOwnerMatch 
IndexIgnore */* 

RewriteEngine On 

RewriteCond %{HTTP_HOST} ^mysite.com$ [nc] 
Rewriterule ^(.*)$ http://www.mysite.com/$1 [r=301,nc,L] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule . url_handle.php 

我想要做的是有一個www重寫規則,以便沒有www的url。使用www重定向到相同的網址。字首。我也使用乾淨的URL,因此任何未知的URL都會發送到url_handle.php進行處理。.htaccess - 重寫網址的一部分

問題是,如果我有像「http://mysite.com/part_1/part_2/part_3」這樣的網址,網址將被重定向,然後讀取「http://www.mysite.com/url_handle.php/part_2/part_3」,省略「part_1」並將其替換爲「url_handle.php」。

+0

你有更多的規則後,或其他htaccess文件?這對我來說可以。 – Prix

回答

1


首先,對非www網站重定向到www使用這個:

RewriteEngine on 
RewriteCond %{HTTP_HOST} !^www\.mysite\.com [NC] 
RewriteCond %{HTTP_HOST} !^$ 
RewriteRule ^/?(.*) http://www.mysite.com/$1 [L,R,NE] 

這意味着,如果該URL不是 「www.mysite.com」 如果沒有空白重定向的「www。 mysite.com」


其次,重定向不明網站的特定網頁,使用這樣的:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ http://www.mysite.com/url_handle.php [R=301,L] 

最後一行將節省您:)

+0

我需要保留我的網址結構,出於某種原因,將所有網址更改爲url_handle.php – user1401768