.HTACCESS 文件导致内部服务器错误 [英] .HTACCESS File causing Internal Server Error

查看:31
本文介绍了.HTACCESS 文件导致内部服务器错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已将文件和数据库从 BradPPresents.com 复制到 BradP.com.

I have copied the files and database from BradPPresents.com to BradP.com.

需要 .htaccess 文件才能使页面正确显示,因为 joomla! 启用了漂亮的 URL".

The .htaccess file is required to get pages to display properly since "Pretty URLs" are enabled by joomla!.

您可以看到数据库和所有连接都在 http://bradp.com/index.php,但是 http://bradp.com/home.html 不起作用,因为它依赖于.htaccess 文件来解析 URL.

You can see that the database and all connections are working at http://bradp.com/index.php, however http://bradp.com/home.html does not work as it relies on the .htaccess file to parse the URL.

我将相同的 htaccess 文件从 bradppresents.com(目前工作正常)复制到 bradp.com,当文件存在时我收到内部服务器错误".一旦删除错误就会消失,但当然该站点无法按需要运行.

I copied the identical htaccess file from bradppresents.com (currently working fine) to bradp.com and I get "Internal server error" when the file is present. As soon as it is deleted the error goes away, but of course the site does not work as needed.

我希望有人能帮我解释一下.

I'm hoping someone can shine a little light on this for me.

这是 .htaccess 文件

Here's the .htaccess file

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|\.aspx|\.asp|/[^.]*)$  [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php

## This attempts to block the most common type of exploit `attempts` to Joomla!
#
# Block out any script trying to set a mosConfig value through the URL
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
# Block out any script trying to base64_encode crap to send via URL
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
# Block out any script that includes a <script> tag in URL
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Send all blocked request to homepage with 403 Forbidden error!
RewriteRule ^(.*)$ index.php [F,L]

#max files size restrictions
php_value upload_max_filesize 20M
php_value post_max_size 20M

这是来自 Apache 的站点配置文件.

Here's the site configuration file from Apache.

<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /home/nick/public_html/bradp.com/html/
        <Directory />
                Options FollowSymLinks
                AllowOverride All
        </Directory>
        <Directory /home/nick/public_html/bradp.com/html/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog /var/log/apache2/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog /var/log/apache2/access.log combined
        ServerSignature On

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

它本质上是默认文件,有一些更改.

It's essentially the default file with a few changes.

我非常感谢我能得到的任何帮助;太感谢了,尼克

I really appreciate any help I can get; Thanks a million, Nick

推荐答案

查看错误日志以查看确切的错误消息.

Look into your error log to see the exact error message.

但是由于您在第一句话中说的是已复制",我假设您正在从一个主机移动到另一个主机.最可能的原因是 rewrite 模块没有加载到新服务器上.

But since you say "copied" in the first sentence, I assume you are moving from one host to another. The most likely cause then is that the rewrite module is not loaded on the new server.

这篇关于.HTACCESS 文件导致内部服务器错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆