【问题标题】:redirecting subdomain to subfolders not containing an index.php with .htaccess使用 .htaccess 将子域重定向到不包含 index.php 的子文件夹
【发布时间】:2012-01-13 09:54:16
【问题描述】:

我收到一个 500 内部服务器错误,内容如下:

RewriteCond %{HTTP_HOST} ^data\.mysite\.com$ [NC]
RewriteRule ^(.*)$ data/$1 [L,QSA]

------------------??? 当我将 RewriteRule 行替换为以下内容时:

RewriteRule ^(.*)$ data/index.php?r=$1 [L,QSA]

它有效,但在实际情况下,我的文件夹中不会有 index.php,我会有包含图像的文件夹...

有什么想法吗?? 原问题here

【问题讨论】:

  • 500 内部错误应该在错误日志中有更多信息。它对请求说了什么?
  • 我在那个文件夹中没有error_log文件!!!

标签: .htaccess subdomain mod-rewrite


【解决方案1】:

您的重写规则是循环的,每次重写 URI 时,它都会重新应用于所有规则,直到规则不更改 URI。因此,当您请求 /something 时,将应用重写规则并将 URI 更改为 /data/something,然后通过重写引擎重新发送,然后重写到 /data/data/something 然后 /data/data/data/something 等。最终 mod_rewrite 将达到其递归限制并返回 500 服务器错误。您可以尝试一些方法来结束循环,假设您真的只想在开头附加一个 /data/。您可以在 RewriteRule 之前添加以下内容之一

RewriteCond %{REQUEST_URI} ^/data

RewriteCond $1 ^/data

【讨论】:

    猜你喜欢
    • 2012-01-09
    • 2012-11-23
    • 2017-03-05
    • 2013-11-08
    • 1970-01-01
    • 2014-03-17
    • 2017-07-04
    • 2018-09-30
    • 2016-02-08
    相关资源
    最近更新 更多