2011-06-20 53 views
0

我看到很多301的问题,但我还没找到解决方案,所以我只是在这里发布它。301没有索引的重定向

标准301看起来是这样的:

RewriteEngine on 
RewriteCond %{HTTP_HOST} !^www\.301redirect\.de$ 
RewriteRule ^(.*)$ http://www.301redirect.de/$1 [L,R=301] 

好吧,当我浏览到我的网站,我结束了在是www.domain.tld/index.php文件/ restofquery。我想要访问www.domain.tld /当我冲浪到domain.tld,并且我也不想在任何其他查询中使用index.php。所以domain.tld/articlebla应该是www.domain.tld/articlebla。

任何方式来完成此?

此致敬礼。

回答

0

只需添加上www你会做:

RewriteCond %{http_host} ^301redirect\.de$ [NC] 
RewriteRule ^/?$ http://www.301redirect.de/ [R=301,NC] 

如果还要加上其他的URL部分和www,你会怎么做:

RewriteCond %{http_host} ^301redirect\.de$ [NC] 
RewriteRule ^(.*?)/?$ http://www.301redirect.de/$1/ [R=301,NC] 

如果你的意思是你不要” t想要重定向url上的原始查询字符串,那么这将工作:

RewriteEngine on 
RewriteCond %{HTTP_HOST} !^www\.301redirect\.de$ 
RewriteRule ^(.*)$ http://www.301redirect.de/$1/? [L,R=301] 

?添加到RewriteRule的末尾意味着查询字符串不会被添加。

+0

嘿。我的意思是,当直接浏览到domain.tld时,服务器/ htaccess应该只是重定向到www.domain.tld。但是,如果冲浪到domain.tld/query1/query2 /等,应该有一个www。附加在开头但没有index.php。 目前它就像domain.tld - > www.domain.tld/index.php 和domain.tld/query1/query2/- > www.domain.tld/index.php/query1/query2/ – HIQwolf

+0

陷阱。我会更新我的答案并回复你。 – Tomgrohl

+0

已更新的答案。 – Tomgrohl