.htaccess 如何在htaccess文件中写入以同时强制尾部斜杠和www
我试图实现两条规则 1) 强迫www。.htaccess 如何在htaccess文件中写入以同时强制尾部斜杠和www,.htaccess,.htaccess,我试图实现两条规则 1) 强迫www。 我通过做 RewriteCond %{HTTP_HOST} ^domain.com RewriteRule (.*) http://www.domain.com/$1 [R=301,L] 2) 在所有URL上添加尾部正斜杠 我是通过这样做才做到这一点的 RewriteCond %{HTTP_HOST} ^domain.com RewriteRule (.*) http://www.domain.com/$1/ [R=301,L] 然后我遇到了一个问题
我通过做
RewriteCond %{HTTP_HOST} ^domain.com
RewriteRule (.*) http://www.domain.com/$1 [R=301,L]
2) 在所有URL上添加尾部正斜杠
我是通过这样做才做到这一点的
RewriteCond %{HTTP_HOST} ^domain.com
RewriteRule (.*) http://www.domain.com/$1/ [R=301,L]
然后我遇到了一个问题
类型url
1) www.domain.com --rewrites to--> http://www.domain.com/ ---Desired Result
2) domain.com --rewrites to--> http://www.domain.com// ---Undesired Result
3) domain.com/location1 --rewrites to--> http://www.domain.com/location1/ ---Desired Result
4) www.domain.com/location1 --rewrites to--> http://www.domain.com/location1 ---Undesired Result
如何编写它以使这两条规则生效?尝试将添加斜杠部分放在www部分之前-应该可以正常工作。此规则将重定向没有www的所有访问:
RewriteCond %{HTTP_HOST} ^domain.com
RewriteRule (.*) http://www.domain.com$1 [R=301]
请注意,我删除了该标志,使其成为最后一条规则
第二个放在后面的斜杠上:
RewriteRule (.*[^/])$ $1/ [R=301,L]
当URL已经以斜杠结尾时,它不会重定向。当有人访问一个没有www和斜杠的页面时,你将得到2个重定向。如果你只是因为搜索引擎而想这么做,那没关系。如果您自己的站点经常指向这样的URL,则需要另一个regexp
如果SEO是你的动机,也可以看看我从来没有使用过这个指令,但是我想到了两个可能有用的想法:
为什么要加斜杠?Apache服务器会自动添加斜杠,如果该名称是一个目录。您不能有同名的文件和目录,因此最多只能更改not founds上的错误消息。您好,谢谢大家的投入我放弃了这个想法,但我仍然从您的回复中受益。谢谢