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 重写规则,这样 url 就没有 www。重定向到与 www 相同的 url。字首。我也在使用干净的 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”。

4

1 回答 1

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]

最后一行会救你:)

于 2013-08-20T13:11:32.437 回答