【问题标题】:htaccess: Using silex/symfony and web-directory redirecthtaccess:使用 silex/symfony 和网络目录重定向
【发布时间】:2014-05-13 09:28:50
【问题描述】:

我想使用带有“web”目录的 silex 来存储公共文件。 结构将如下所示:

-project
--vendor
----silex
----...
--web
----index.php
--.htaccess

所以我想要一个 .htaccess 脚本来完成这些任务:

  • 如果我请求一个文件 ./myInstallationPath/file.php 它应该检查该文件是否存在于 ./myInstallationPath/web/ 中,如果存在,则重定向到它内部 .否则它应该内部重定向到 ./myInstallationPath/web/index.php
  • 如果我请求 ./myInstallationPath/web/,它应该从 URL 中删除“web/”,这样用户就不会看到“web”目录。那么就应该使用上面的点。

由于项目的路径可以是根目录,也可以是子文件夹,所以安装路径可以通过以下方式确定:

 RewriteCond %{REQUEST_URI}::$1 ^(.*?/)(.*)::\2$
 RewriteRule ^(.*)$ - [E=INSTALLATION_ROUTE:%1]

这是我现有的代码:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/%{ENV:INSTALLATION_ROUTE}web/$1 !-f [NC]
RewriteCond %{DOCUMENT_ROOT}/%{ENV:INSTALLATION_ROUTE}web/$1 !-d [NC]
RewriteRule (.*) %{ENV:INSTALLATION_ROUTE}web/index.php [L]

它会检查该文件是否在 web/ 中不存在,如果存在,它将重定向到 index.php 其他规则如何才能满足要求?

【问题讨论】:

    标签: .htaccess symfony mod-rewrite symfony1 silex


    【解决方案1】:

    我建议您使用 Apache 虚拟主机。我的项目结构看起来像你的。我在 http.conf 中使用它来创建虚拟主机:

    <VirtualHost localhost:80>
       ServerAdmin localhost
       DocumentRoot "c:/apachefolder/htdocs/"
       ServerName localhost
       ServerAlias localhost
    </VirtualHost>
    
    <VirtualHost localhost:80>    
       DocumentRoot "C:/apachefolder/htdocs/mysilexproject/web"
       ServerName myproject.dev
       ServerAlias myproject.dev
    </VirtualHost>
    

    我首先添加了 localhost 以仍然能够访问其他站点,就像在使用 VirtualHosts 之前一样。

    创建 VHost 后,您必须在系统主机文件中设置用于项目的虚拟域。

    如果是 Windows C:\Windows\System32\drivers\etc

    /etc/hosts 适用于大多数 Linux 发行版

    之后,我将我的.htaccess 文件放入项目的web 目录中,如下所示:

    <IfModule mod_rewrite.c>
        Options -MultiViews
    
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^ index.php [QSA,L]
    </IfModule>
    

    最后重新启动您的 apache 以应用配置更改。现在您可以使用http://myproject.dev访问您的网站

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-08
    • 2012-04-23
    • 1970-01-01
    相关资源
    最近更新 更多