13

我正在做一个非常复杂的项目,所以我想使用一个有意义的文件/文件夹结构。

我想要的文件夹/文件结构是:

.htaccess
/php/
/assets/

我想要人们可以访问的网页:

/php/views/pages/

我想知道是否可以仅使用.htaccess设置/php/views/pages为“可查看的根”,例如,当人们访问时,http://mydomain.com/他们将正在查看http://mydomain.com/php/views/pages/index.php,如果是这样,我将如何去做?

此外,是否可以规范化所有对/php/views/pagesusing.htaccess和 301 重定向的访问以阻止多个链接在搜索引擎中被索引?

4

1 回答 1

30

如果您无权访问您的主机配置

DocumentRoot只能在服务器和虚拟主机配置中使用,.htaccess 必须是。

  1. 让我们在 .htaccess 中添加指令

    RewriteEngine on
    
  2. 我假设您想让对 /assets 的请求通过

    #if a match for asset is found, do nothing
    RewriteRule ^assets/ - [L]
    
  3. 如果请求尝试/php/views/pages/直接访问,请将其重定向到其规范版本

    RewriteCond %{THE_REQUEST} php/views/pages/
    RewriteRule ^php/views/pages/(.*) http://mydomain.com/$1 [R=301,L]
    
  4. 并添加一条规则以将其他所有内容映射到/php/views/pages/

    RewriteCond %{REQUEST_URI} !php/views/pages/
    RewriteRule ^(.*)$ /php/views/pages/$1 [L]
    

如果您有权访问您的主机配置

忘记 .htaccess 文件并使用它。示例配置可能看起来像

# ~base stands for your original DocumentRoot
<VirtualHost *:80>
    DocumentRoot ~base/php/views/pages
    Alias /assets ~base/assets

    # other configuration parameters
</VirtualHost>
于 2012-05-03T08:10:23.043 回答