.htaccess - 将非www重定向到www网址后丢失了漂亮的网址

时间:2013-07-15 12:09:40

标签: .htaccess

我已经.htaccess 301重定向将非www重定向到www,这工作正常,但是当使用非www url访问页面时,我的漂亮网址会丢失。

我这样做了。

Options +FollowSymlinks
RewriteEngine on
Rewritecond %{HTTP_HOST} ^site.com [NC]
Rewriterule ^(.*)$ http://www.site.com/$1 [R=301,NC]
RewriteRule ^([^/]*)/(.*\.html) process/?category=$1&link=$2 [L]

重定向网址

http://www.site.com/software/page.html 

http://www.site.com/process/index.php?category=software&link=page.html

正确地没有在地址栏中丢失漂亮的网址www.site.com/software/page.html

重定向网址

http://site.com/software/page.html 

http://www.site.com/process/index.php?category=software&link=page.html

正确,现在漂亮的网址丢失了,地址栏中的地址是

http://www.site.com/process/index.php?category=software&link=page.html

而不是

http://site.com/software/page.html

如果在没有www的情况下访问页面时如何保留漂亮的URL。

请参阅并建议任何方法。

由于

1 个答案:

答案 0 :(得分:2)

我认为问题在您的第一条规则中缺少L标记。试试这段代码:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

Rewritecond %{HTTP_HOST} ^site\.com$ [NC]
Rewriterule ^(.*)$ http://www.site.com/$1 [R=301,NC,L]

RewriteRule ^([^/]+)/([^.]+\.html)$ /process/?category=$1&link=$2 [QSA,L,NC]