2012-08-11 153 views
0

您好我尝试过与其他线程显示htaccess中的modewriter各种方法。我想将我的网址从www.example.com/categories.php?category=1重定向到www.example.com/categories/science301动态页面重定向

我真的很感谢一个例子,我错了。谢谢。

+0

你怎么从'1'到'science'? – 2012-08-11 19:53:05

回答

1

假设它只是要重定向它会是这样一个URL:

RewriteEngine on 
RewriteCond %{QUERY_STRING} ^category=1$ [NC] 
RewriteRule ^categories.php$ www.example.com/categories/science/? [L,R=301] 

这是在你使用.htaccess文件的情况下,否则增加一个预谋斜线:

RewriteRule ^/categories.php$ www.example.com/categories/science/? [L,R=301] 

查询字符串将被丢弃。如果您想在浏览器的地址栏中将其显示给用户,请放置[R]。考虑你想要提供哪种状态,如果它是永久性的,Google就喜欢301。

接下来,你必须赶上与index.php文件传入请求目录www.example.com/categories/science

好运!

+0

嗨,感谢您的快速回复,我在我的htaccess文件中试过了,当我加载我的页面时,url就像这样http://example.com/www.example.com/categories/science/,但没有找到404页面任何想法?我不知道这样的其他线路是否用于从非www地址重定向到www地址并将我的index.php页面重定向到我的网站导致了任何问题?我删除了它们,并只尝试了您的建议,但该地址仍然像页面404一样未找到。 – user1592565 2012-08-12 07:07:09

+0

这是我以前 RewriteEngine叙述用于在 的RewriteCond%{HTTP_HOST}^example.come 重写规则的代码(。*)http://www.example.com/$1 [R = 301,L] 的RewriteCond %{THE_REQUEST} ^。*/index.php RewriteRule ^(。*)index.php $ http://www.example.com/ – user1592565 2012-08-12 07:09:03

+0

看起来您的其他规则导致了无意义的重定向。也可能是因为浏览器的缓存让你的测试感到困扰。尝试刷新,重新启动浏览器,并在测试时,不要使用[R = 301],而是使用普通的[R]。 最后一条规则会干扰您的新index.php – 2012-08-12 12:01:13