我已经.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。
请参阅并建议任何方法。
由于
答案 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]