1

我已将 .htaccess 301 重定向以将非 www 重定向到 www,这工作正常,但是当使用非 www url 访问页面时,我的漂亮 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

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

它重定向网址

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

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

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

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

代替

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

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

请查看并建议任何方法来做到这一点。

谢谢

4

1 回答 1

1

我相信问题是您的第一条规则中缺少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]
于 2013-07-15T12:14:35.913 回答