-2

我想重写一个 url,这样如果用户输入或点击一个看起来像这样的链接: “mysite.com”http://mysite.com“www.mysite.com” 他们会被带到 http ://www.mysite.com

我目前在我的 .htcaccess 文件中使用以下代码,但它似乎没有做任何事情:

RewriteEngine On
RewriteCond !^www\.mysite\.com [NC]
RewriteCond %{HTTP_HOST}   !^$
RewriteCond $1 !^(favicon\.ico|favicon\.png|media|robots\.txt|crossdomain\.xml|css|js)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?(.*) http://www.mysite.com/$1 [L,R=301,NE]

RewriteCond $1 !^(favicon\.ico|favicon\.png|media|robots\.txt|crossdomain\.xml|css|js)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url_params=$1 [L,QSA]

<filesMatch "\\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
    #Header set Cache-Control "max-age=29030400, public"
</filesMatch>
<filesMatch "\\.(css)$">
    #Header set Cache-Control "max-age=29030400, public"
</filesMatch>
<filesMatch "\\.(js)$">
    #Header set Cache-Control "max-age=29030400, private"
</filesMatch>
<filesMatch "\\.(xml|txt)$">
    #Header set Cache-Control "max-age, public, must-revalidate"
</filesMatch>

*错误已修复。

我的网站现在加载,但例如,如果我去 mysite.com 它不会将我重定向到http://www.mysite.com

4

1 回答 1

0

好的,我解决了。事实证明,我的重写条件顺序错误。

正确方法:RewriteCond $1 !^(favicon.ico|favicon.png|media|robots.txt|crossdomain.xml|css|js) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(. *)$ index.php?url_params=$1 [L,QSA]

RewriteCond !^www.mysite.com [NC] RewriteCond %{HTTP_HOST} !^$ RewriteCond $1 !^(favicon.ico|favicon.png|media|robots.txt|crossdomain.xml|css|js) RewriteCond %{REQUEST_FILENAME } !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^/?(.*) http://www.mysite.com/ $1 [L,R=301,NE]

于 2013-03-11T02:56:06.817 回答