.htaccess - 正在重写网址的一部分

时间:2013-08-20 11:33:27

标签: apache .htaccess

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的网址。使用www重定向到相同的网址。字首。我也使用干净的URL,因此任何未知的URL都会被发送到url_handle.php进行处理。

问题是,如果我有“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”

1 个答案:

答案 0 :(得分:1)


首先,要将非www站点重定向到www,请使用以下命令:

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

这意味着,如果网址不是“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]

最后一行将为您节省:)