使用 htaccess 文件将非 WWW 重定向到 WWW

发布于 2024-10-19 09:04:26 字数 703 浏览 2 评论 0原文

我正在使用 Codeigniter-。 我的域名目前未重定向到 www 版本。

例如,如果我输入 mydomain.com,那么它仍然是 mydomain.com。我想将其重定向到 www.mydomain.com

如果有人输入 mydomain.com/controller/method 那么它应该是 www.mydomain.com/controller/method

另一个问题:我已经尝试过其他解决方案,但问题是当它重定向到 www 版本时,它会自动在 URL 中添加“index.php”。但是当我在域名中输入 www 时,它工作正常,URL 中没有“index.php”。此问题仅在重定向期间出现。

这是我的 .htaccess 文件(我已删除重定向代码)

RewriteCond $1 !^(index\.php|system|rpc_relay.html|canvas.html|robots\.txt)
RewriteCond $1 !^(sitemap\.xml|export)
RewriteRule ^(.*)$ /index.php/$1 [L]

任何帮助将不胜感激。

I am using Codeigniter-.
My domain currently does not redirect to www version.

For example if I type mydomain.com then it stays mydomain.com. I want to redirect it to www.mydomain.com.

If someone types mydomain.com/controller/method then it should be www.mydomain.com/controller/method.

Another problem: I already tried other solutions but the problem is when it redirects to www version, it automatically adds "index.php" in the URL. But when I type www in the domain name then it works fine, no "index.php" in the URL. This problem occurs only during the redirection.

Here is my .htaccess file (I've removed the redirection code)

RewriteCond $1 !^(index\.php|system|rpc_relay.html|canvas.html|robots\.txt)
RewriteCond $1 !^(sitemap\.xml|export)
RewriteRule ^(.*)$ /index.php/$1 [L]

Any help would be greatly appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

狂之美人 2024-10-26 09:04:26

http:// 重定向到 http://www。 ,并删除 url 中的路由文件 (index.php),将这些行放在您的 htaccess 上:

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]
RewriteCond $1 !^(index\.php|images|css|js|styles|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

域是:

domain.com

可直接访问的文件夹:

images|css|js|styles

希望有所帮助

To redirect from http:// to http://www. , and also remove the route file (index.php) in the url, put these lines on your htaccess :

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]
RewriteCond $1 !^(index\.php|images|css|js|styles|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

the domain is :

domain.com

folder with direct access :

images|css|js|styles

hope this help

苏佲洛 2024-10-26 09:04:26

我之前使用过以下内容:

<IfModule mod_rewrite.c>
  RewriteCond %{HTTPS} !=on
  RewriteCond %{HTTP_HOST} !^www\..+$ [NC]
  RewriteCond %{HTTP_HOST} (.+)$ [NC]
  RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]
</IfModule>

I've used the following before:

<IfModule mod_rewrite.c>
  RewriteCond %{HTTPS} !=on
  RewriteCond %{HTTP_HOST} !^www\..+$ [NC]
  RewriteCond %{HTTP_HOST} (.+)$ [NC]
  RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]
</IfModule>
我早已燃尽 2024-10-26 09:04:26

要将 domain.com 重定向到 www.domain.com,您可以使用以下重写规则。请将 domain.com 替换为您自己的域名。

RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]

To redirect domain.com to www.domain.com, you could use the following rewrite rule. Please replace domain.com with your own domain name.

RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]
糖果控 2024-10-26 09:04:26

我不知道为什么会有如此复杂的 RewriteRules 答案,尽管 Gobhi 提供了一个很好的通用解决方案(= 无论域名是什么,它都有效)。
这是我的解决方案。

<IfModule mod_rewrite.c>
  RewriteCond %{HTTP_HOST} ^mydomain\.com$ [NC]
  RewriteRule ^(.*)$ http://www.mydomain.com/$1 [R=301,L]

  RewriteRule (.*)/index\.php$ $1/ [QSA]
</IfModule>

I don't know why there are such complex RewriteRules answers, even though Gobhi has provided a nice generic solution (= whatever the domain name is, it works).
Here's my solution.

<IfModule mod_rewrite.c>
  RewriteCond %{HTTP_HOST} ^mydomain\.com$ [NC]
  RewriteRule ^(.*)$ http://www.mydomain.com/$1 [R=301,L]

  RewriteRule (.*)/index\.php$ $1/ [QSA]
</IfModule>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文