4

我正在本地开发一个网站/网络应用程序,其中包括许多 ajax 调用等......我的问题是每次我必须在 url 中包含 app_dev.php - 所以当我继续生产时,我需要搜索和替换这些网址..

有没有办法通过 apache 隐藏 app_dev.php ?我读了很多关于那个的问题,但没有解决方案对我有用。

我已经做的是添加这个:

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "C:/wamp/www/web"
    DirectoryIndex app_dev.php
    ServerName dummy-host.example.com
    ServerAlias localhost
    ErrorLog "logs/dummy-host.example.com-error.log"
    CustomLog "logs/dummy-host.example.com-access.log" common
    <Directory "C:/wamp/www/web">
        AllowOverride All
        Allow from All
    </Directory>
</VirtualHost>

到我的 httpd.conf 但它被完全忽略了......

我正在使用 WAMP 2.2

4

3 回答 3

3

我将 web/.htaccess 更改为以下内容:

<IfModule mod_rewrite.c>
    Options +FollowSymlinks
    RewriteEngine On

    #<IfModule mod_vhost_alias.c>
    #    RewriteBase /
    #</IfModule>

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ app_dev.php [QSA,L]
</IfModule>

我在 httpd.conf 中添加了以下内容:

DocumentRoot "c:/wamp/www/web"
<Directory "c:/wamp/www/web">

和我的 httpd-vhosts.conf (C:\wamp\bin\apache\apache2.4.2\conf\extra) :

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "C:/wamp/www/web"
    DirectoryIndex app_dev.php
    ServerName localhost
    ServerAlias localhost
    ErrorLog "logs/dummy-host.example.com-error.log"
    CustomLog "logs/dummy-host.example.com-access.log" common
    <Directory "C:/wamp/www/web">
        AllowOverride All
        Allow from All
    </Directory>
</VirtualHost>
于 2013-02-17T12:26:16.247 回答
0

对于这个捆绑包,我会采用更一致的方法:

FOSJsRoutingBundle

然后您可以按名称生成路由,app_dev.php添加只会在开发环境中发生。

于 2013-02-17T12:53:33.237 回答
0

您似乎正在尝试为Symfony.

一个更简单的解决方案是只创建虚拟主机并告诉它不要使用它,.htaccess因为它.htaccess是导致您的虚拟主机设置被覆盖的文件。

记住.htaccess在您在httpd.conforhttpd-vhosts.conf文件中执行任何操作之后都会应用。

用于开发的虚拟主机mysite.dev

<VirtualHost *:80>
    ServerName mysite.dev
    ServerAlias www.mysite.dev
    DocumentRoot e:/testing/mysite/web
    <Directory  "e:/testing/mysite/web/">
        // disable the .htaccess in the web folder
        // from undoing the attempt to go straight to app_dev.php
        AllowOverride None

        Require local

        // this forces app_dev.php to be run
        <IfModule rewrite_module>
            Options -MultiViews
            RewriteEngine On
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(.*)$ app_dev.php [QSA,L]
        </IfModule>
    </Directory>
    ErrorLog "D:/wamp/logs/mysite.dev.apache.error.log"
    CustomLog "D:/wamp/logs/mysite.dev.apache.access.log" combined
    php_value error_log "D:/wamp/logs/mysite.dev.php.error.log"
</VirtualHost>

用于在 PROD 环境中进行测试的虚拟主机

<VirtualHost *:80>
    ServerName mysite.dev
    ServerAlias www.mysite.dev
    DocumentRoot e:/testing/mysite/web
    <Directory  "e:/testing/mysite/web/">

        AllowOverride All

        Require local

    </Directory>
    ErrorLog "D:/wamp/logs/mysite.prod.apache.error.log"
    CustomLog "D:/wamp/logs/mysite.prod.apache.access.log" combined
    php_value error_log "D:/wamp/logs/mysite.prod.php.error.log"
</VirtualHost>

现在您可以保留.htaccess文件原样,因为当您将此站点移动到实时服务器时,它可能非常相关。

您也不需要httpd.conf从标准 WAMPServer 默认值修改默认文件中的任何内容。

于 2017-09-29T12:36:48.010 回答