首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache always serving DocumentRoot index.php

Apache always serving DocumentRoot index.php
EN

Stack Overflow用户
提问于 2012-11-28 07:38:01
回答 2查看 2.9K关注 0票数 0

这可能是个新手问题但是..。我在Apache中配置了一个SSL站点,如下所示:

代码语言:javascript
复制
NameVirtualHost *:443

<VirtualHost *:443>
    ServerName dev.wonnova.com
    DocumentRoot "/var/www/myapp/wwwroot"

    SSLEngine on

    SSLProtocol -all +TLSv1 +SSLv3
    SSLCipherSuite HIGH:MEDIUM:!aNULL:+SHA1:+MD5:+HIGH:+MEDIUM

    SSLCertificateFile /etc/apache2/ssl/mycert.crt
    SSLCertificateKeyFile /etc/apache2/ssl/mycert.key

    <IfModule mime.c>
        AddType application/x-x509-ca-cert      .crt
        AddType application/x-pkcs7-crl         .crl
    </IfModule>

    Alias /mydir/ "/var/www/myapp/mydir"

    <Directory "/var/www/myapp/mydir">
        SSLRequireSSL
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride all
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

问题是,无论我请求哪个URL,我总是得到/var/www/myapp/wwwroot/index.php (即DocumentRoot目录中的index.php )的内容。例如,这些URL就会发生这种情况:

代码语言:javascript
复制
 - https://mysite/index.php
 - https://mysite/mydir/index.php
 - https://mysite/mydir/style.css
 - https://mysite/mydir/script.js

另一方面,如果我在DocumentRoot目录下创建了一个index2.php文件,它会正确地显示:

代码语言:javascript
复制
 - https://mysite/index2.php

我猜我的Apache配置有问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-29 06:40:09

我解决了这个问题,我必须去掉Alias行第一部分的最后一个斜杠。

这是错误的:

代码语言:javascript
复制
Alias /mydir/ "/var/www/myapp/mydir"

这是正确的:

代码语言:javascript
复制
Alias /mydir "/var/www/myapp/mydir"
票数 0
EN

Stack Overflow用户

发布于 2012-11-28 08:29:33

首先,你可以去掉别名中的撇号(我想你的是对的)。更改主站点的配置:

代码语言:javascript
复制
Alias /mydir/ "/var/www/myapp/mydir"

    <Directory "/var/www/myapp/mydir">
        SSLRequireSSL
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride all
        Order allow,deny
        Allow from all
    </Directory>

至:

代码语言:javascript
复制
Alias  /mydir /var/www/myapp/mydir
    <Directory /var/www/myapp/mydir>
         SSLRequireSSL
         Allow From all
         Options +Indexes FollowSymLinks Includes ExecCGI
         AllowOverride all 

     </Directory>

此外,您还需要转到/var/www/myapp/并编辑.htaccess并将其更改为:

代码语言:javascript
复制
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /mydir/
  RewriteRule ^index\.php$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /mydir/index.php [L]
</IfModule>

我假设您在/var/www/myapp/mydir中有一个别名指向的DirectoryIndex文件(例如index.php)。如果有效,请让我知道

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13595215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档