如何使用htaccess将非www重定向到www URL?

Pra*_*ant 14 apache .htaccess url-rewriting

我在我网站的根目录中有一个网站说http://www.example.com/,我已添加.htaccess文件,将http://example.com/的任何请求重定向到http://www.example. COM /

最近我创建了一个新的"视频"部分,因此视频的网址是http://www.example.com/videos/.在这个视频文件夹中,我有另一个htaccess文件正在执行视频条目的重写.当我尝试访问http://example.com/videos/时,它不会将我重定向到http://www.example.com/videos/

我认为.htacces不会从父目录继承先前的规则.任何人都可以告诉我可以添加到/ videos /文件夹的.htaccess文件中的规则,以便任何对http://example.com/videos/的请求都会被重定向到http://www.example. com/videos / URL.

Rod*_*ira 45

这是一个更通用的解决方案,因为它可以与任何域名一起使用,而无需在每个.htaccess中指定特定的域名:

# Redirect non-www to www:
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)

相反也是可能的(www到非www):

# Redirect www to non-www
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)

  • 我在Magento,此代码将//mywebsite.com/some/url重定向到//www.mywebsite.com/index.php.这里是否还有一个额外的步骤来保持URL的持久性? (2认同)

Lau*_*ves 9

我认为可能只是因为您的现有规则过于严格,并且因此没有在您的子目录中触发.这样的事情应该在整个网站范围内工作:

RewriteEngine on
RewriteBase /

RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule ^(.*) http://www.example.com/$1 [R=301]
Run Code Online (Sandbox Code Playgroud)