2013-08-20 199 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