如何修复.htaccess以拒绝下载index.php文件(在Yii2中)?

时间:2016-07-31 13:41:00

标签: php apache .htaccess yii2

有一个Yii2项目。我需要为所有网页从域sitename.ru临时重定向到子域ru.sitename.com,但有些页面除外(以/news开头)。我做了以下事情:

RewriteEngine On

AddDefaultCharset UTF-8

php_value upload_max_filesize 20M
php_value post_max_size 25M
php_value memory_limit 256M

RewriteCond %{REQUEST_URI} !^/news.*$
RewriteRule (.*) http://ru.sitename.com/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [L]

因此,所有重定向都能正常工作。但是当我尝试打开以/news开头的页面时,index.php文件下载过程开始了。我该如何解决这个问题? 提前谢谢!

UPD 1
Apache设置如下:

<Directory /path/to/web/dir/www/sitename.ru/web>
    Options +ExecCGI
    php_admin_value open_basedir "/path/to/web/dir:.:/usr/lib/php:/usr/local/lib/php:/tmp"
    php_admin_flag engine on
</Directory>

<VirtualHost 1.11.11.111:81>
    ServerName sitename.ru
    DocumentRoot /path/to/web/dir/www/sitename.ru/web
    SuexecUserGroup admin admin 
    CustomLog /path/to/httpd-logs/sitename.ru.access.log combined
    ErrorLog /path/to/httpd-logs/sitename.ru.error.log
    ServerAlias www.sitename.ru
    ServerAdmin email@yandex.exo
    ScriptAlias /cgi-bin/ /path/to/web/dir/www/sitename.ru/web/cgi-bin/
    php_admin_value open_basedir "/path/to/web/dir:.:/usr/lib/php:/usr/local/lib/php:/tmp"
    php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f email@yandex.exo"
    php_admin_value upload_tmp_dir "/path/to/web/dir/mod-tmp"
    php_admin_value session.save_path "/path/to/web/dir/mod-tmp"
    AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml
    AddType application/x-httpd-php-source .phps
    AddHandler php5-script .php
</VirtualHost>

UPD 2
我已经提到所有php文件都有相同的情况(如果是在web目录中)。这就是我用以下字符串更新Apache设置的原因:

AddHandler php5-script .php

现在php文件正常工作。但是我所描述的问题(关于/news路径)仍然存在。

0 个答案:

没有答案