【问题标题】:How to configure .htacces for Slim in subfolder and alias redirect如何在子文件夹和别名重定向中为 Slim 配置 .htaccess
【发布时间】:2017-03-15 16:46:20
【问题描述】:

我的文件结构

-www  
-- .htaccess  
-- domains/  
--- someAlias.com/  
---- indexOfOtherWebsite.html  
--- otherAlias.com/  
---- indexOfAnotherWebsite.html  
-- angularApp/  
-- restSlim/  
--- .htaccess  
--- index.php  

我正在使用由我的虚拟主机提供商生成的 .htaccess,它允许我为别名运行不同的网站:

# htaccess rules for subdomains and aliases
# to create web for alias, create a folder www/domains/(whole domain name)

RewriteEngine On

RewriteCond %{REQUEST_URI} !^domains/
RewriteCond %{REQUEST_URI} !^/domains/
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)$
RewriteCond %{DOCUMENT_ROOT}/domains/%2 -d
RewriteRule (.*) domains/%2/$1 [DPI]

RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^domains/[^/]+/(.+[^/])$ /$1/ [R]

这是来自 Slim 文档的 .htacces 文件:

RewriteEngine on
RewriteRule ^$ www/     [L]
RewriteRule (.*) wwww/$1 [L]

当 index.php 和 .htaccess 本身放置在 web 根 (www) 中时,我测试的 Slim 应用程序运行良好。然后我将它移动到单独的文件夹(restSlim)并将 .htaccess 文件更改为:

RewriteEngine on
RewriteRule ^$ www/restSlim/     [L]
RewriteRule (.*) wwww/restSlim/$1 [L]

我希望 Slim 应用程序从子文件夹 (restSlim) 运行而不会破坏 web 的别名功能。我应该如何编辑那些 .htaccess 文件?

【问题讨论】:

    标签: .htaccess slim


    【解决方案1】:

    毕竟我已经让它工作了。文件结构相同,只需从 restSlim 文件夹中删除 .htaccess 并在 www 中只保留一个并像这样编辑它:

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(restSlim) restSlim/index.php [QSA,L]
    
    RewriteCond %{REQUEST_URI} !^domains/
    RewriteCond %{REQUEST_URI} !^/domains/
    RewriteCond %{HTTP_HOST} ^(www\.)?(.*)$
    RewriteCond %{DOCUMENT_ROOT}/domains/%2 -d
    RewriteRule (.*) domains/%2/$1 [DPI]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^domains/[^/]+/(.+[^/])$ /$1/ [R]
    

    第一部分解决了 Slim 从子目录工作的问题,由于 L 标志,它应该是最后执行的规则。其余的和以前一样,使这些网络成为可能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-09
      • 2014-12-03
      • 2015-12-07
      • 1970-01-01
      • 2014-04-03
      • 2021-06-29
      相关资源
      最近更新 更多