【问题标题】:.htaccess Messy Rewrite Rules.htaccess 凌乱的重写规则
【发布时间】:2017-05-04 13:48:18
【问题描述】:

我可以通过一些帮助来尝试清理在我们工作中的一台服务器上运行的 .htaccess 文件。

目前已设置为如果有人键入example.com,它将重定向到www.example.com。问题是我们想利用子域,但是当我们尝试添加子域时,比如beta.example.com,它会重定向到www.beta.example.com

这是.htaccess 文件

DirectoryIndex index.html index.php
RewriteEngine On
RewriteBase /

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

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php?/$1 [L]

我已经尝试了关于 SO 和 Google 和 htaccess 生成器的问题的多种变体,但它们似乎都没有帮助,因为它们通常将网站置于重定向循环中。

任何有关正确配置的帮助将不胜感激。

-- 克里斯

【问题讨论】:

  • 指定一个文档根树以及 index.php 和 htaccess
  • 不确定我是否理解。有代码示例吗?
  • 不清楚 index.php 和 htaccess 相对于站点文档根目录的位置
  • .htaccessindex.php 文件位于同一文件夹中
  • 此文件夹是否为文档根目录?注意,$1 是一个 request_uri,从根目录到当前文件夹的前缀被丢弃。请改用%{REQUEST_URI},不要使用正斜杠。

标签: apache .htaccess redirect mod-rewrite


【解决方案1】:

要在没有子域时自动将 www 添加到您的域名中,请将其添加到文档根目录中的 htaccess 文件中::RewriteEngine On RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$ RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [L,R=301]

【讨论】:

  • 这种作品。除此之外,该站点有一个门户 www.example.com/dashboard/portal,当您在更改 .htaccess 后转到该门户时,该门户显示 404 not found。
猜你喜欢
  • 1970-01-01
  • 2011-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多