用于在共享服务器上映射请求的Apache .htaccess设置

时间:2014-03-28 15:20:34

标签: apache .htaccess

我想要以下结构:

|--- public_html
    |--- dist
    |    |--- index.html
    |    |--- style.css
    |    |--- script.js
    |    |--- blog
    |    |    |--- index.html
    |--- index.php
|--- .htaccess

要让apache首先查看/dist/以查看是否匹配,那么如果不使用/index.php。如何通过.htaccess获取apache?

但我不希望它只是重定向,而是为了提供/dist/文件,就像它们在Web根目录中一样,所以:

example.com/blog

是这样提供的,但是使用example.com/dist/blog/index.html中的文件。

我已经对文档有了很好的了解,但我对在apache中看似无数的重定向和映射方式感到困惑。我会用哪个模块来做这个?

1 个答案:

答案 0 :(得分:0)

将此代码放入DOCUMENT_ROOT/.htaccess文件中:

RewriteEngine On

# if path available in /dist/ then use it
RewriteCond %{DOCUMENT_ROOT}/dist/$1 -f [OR]
RewriteCond %{DOCUMENT_ROOT}/dist/$1 -d
RewriteRule ^(.+?)/?$ /dist/$1 [L]

# otherwise forward to /index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]