【问题标题】:htcaccess rewrite to subdirectory not workinghtaccess重写到子目录不起作用
【发布时间】:2015-01-23 12:48:11
【问题描述】:

一旦我再次问这个问题,有些人可能会生气和恼火,但在尝试了我在这里找到的所有答案后,我真的无法让它发挥作用,而且我也是这个问题的新手。无论如何,我有一个域(www.testco.sample.com),我想重定向到一个子目录(/var/www/html/start/index.html),所以我修改了.htaccess 并在下面添加了以下几行。

RewriteEngine on
RewriteRule ^$ start/index.html [L]

但是,当重新启动 apache 时,它​​不使用重写规则。我什至尝试了下面的代码,但无济于事。

# .htaccess main domain to subdirectory redirect
# Do not change this line.
RewriteEngine on
# Change example.com to be your main domain.
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
# Change 'subdirectory' to be the directory you will use for your main domain.
RewriteCond %{REQUEST_URI} !^/subdirectory/
# Don't change the following two lines.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Change 'subdirectory' to be the directory you will use for your main domain.
RewriteRule ^(.*)$ /subdirectory/$1
# Change example.com to be your main domain again.
# Change 'subdirectory' to be the directory you will use for your main domain
# followed by / then the main file for your site, index.php, index.html, etc.
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^(/)?$ subdirectory/index.html [L] 

有人能解释一下怎么做吗?

谢谢。

【问题讨论】:

  • 您是否允许在虚拟主机中进行覆盖?
  • 是的,这是我检查过的第一件事

标签: php apache http web


【解决方案1】:

使用RewriteBase

# .htaccess main domain to subdirectory redirect
RewriteBase /foldername/
# Do not change this line.
RewriteEngine on
# Change example.com to be your main domain.
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
# Change 'subdirectory' to be the directory you will use for your main domain.
RewriteCond %{REQUEST_URI} !^/subdirectory/
# Don't change the following two lines.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Change 'subdirectory' to be the directory you will use for your main domain.
RewriteRule ^(.*)$ /subdirectory/$1
# Change example.com to be your main domain again.
# Change 'subdirectory' to be the directory you will use for your main domain
# followed by / then the main file for your site, index.php, index.html, etc.
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^(/)?$ subdirectory/index.html [L] 

【讨论】:

  • 服务器是Ubuntu有什么区别吗?也许我错过了什么。
【解决方案2】:

这很尴尬,但我的问题的解决方案非常简单,我不得不花费 4 到 6 个小时来搜索、排除故障、寻找答案(讽刺!)。解决我的问题的是一个班轮

RedirectMatch ^/$ /start/index.html

感谢大家的帮助!

【讨论】:

    猜你喜欢
    • 2012-05-06
    • 1970-01-01
    • 1970-01-01
    • 2012-03-23
    • 2010-10-26
    • 1970-01-01
    • 2012-01-26
    • 2016-05-15
    • 2014-03-29
    相关资源
    最近更新 更多