我有一个网站说http://www.example.com/我的网站的根,我已经加入.htaccess文件重定向的任何要求http://example.com/到HTTP://www.example。 COM /
最近我已经创建了一个新的部分“影片”所以对于视频的URL是http://www.example.com/videos/ 。 在这个视频文件夹中我有一个正在执行重写视频输入另一个htaccess文件。 当我试图访问http://example.com/videos/那么它不重定向我http://www.example.com/videos/
我认为.htacces是不是继承了父目录之前的规则。 谁能告诉我什么都可以,我可以在/视频/文件夹的.htaccess文件添加,以便对任何请求规则http://example.com/videos/将被重定向到HTTP://www.example。 COM /视频/ URL。
这是一个更通用的解决方案,因为它可以与任何域名,而无需在每个htaccess来指定特定的域名被使用:
# Redirect non-www to www:
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
反之也有可能(WWW到非www):
# Redirect www to non-www
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
我想这可能只是你的现有规则过于严格,而在你的,因为该子目录是没有得到触发。 像这样的东西应该工作站点范围:
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule ^(.*) http://www.example.com/$1 [R=301]
这是重定向非www到www网址的使用htaccess的最佳解决方案。 使用htaccess的文件,并检查URL这个代码。
Options +FollowSymlinks
RewriteEngine on
rewritecond %{http_host} ^mydomain.com [nc]
rewriterule ^(.*)$ http://www.mydomain.com/$1 [r=301,nc]
我建议大家坚持使用下面的方法只会重定向主域名不仅没有在你的主机其他任何子目录或子域。
# Redirect non-www to www only for main domain
# recommended if you have any/some sub-domain(s)
RewriteEngine on
RewriteBase /
# Replace yoursite and .tld respectively
RewriteCond %{HTTP_HOST} ^yoursite\.tld$
# Replace yoursite.com
RewriteRule ^(.*) http://www.yoursite.com/$1 [R=301]
如果你真的确定,我希望你会说你永远不会使用子域名与您的网站即subdomain.yoursite.com或任何使用此方法。 比你当然可以用下面的方法。 “说着再次确认,如果你真的想用这种方法”
# Redirect all non-www to www including subdomain(s)
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
下面的方法将所有WWW网址重定向到非www包括你的子域虽然你不能使用www.subdirecty.yoursite.com它会提示你用500错误。
# Redirect www to non-www
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]