新的Apache服务器 - .htaccess麻烦

时间:2014-08-18 00:36:22

标签: linux apache .htaccess ubuntu lamp

(原谅我,我的右手受伤了,所以输入时会遇到麻烦)

我最近建立了一个运行'LAMP Stack'的新Linux服务器。我用过PuTTY,Git和朋友。通常,我在预先设置的环境中工作 - 我只是一个应用程序开发人员。从技术上讲,这将是我的第一次“单独冒险”。我之前从未获得root服务器访问权限,我只是在那里工作。

因此,为了开始,我决定从之前的项目移植我的一些工作并建立它。它严重依赖于 Rewrite 规则。无知地,我认为我的.htaccess文件会神奇地起作用。它没有 - 无论出于何种原因,Apache都希望你能够使用重写规则(这不像是你不小心设置了.htaccess文件,亲爱的我)。

所以,我已经阅读了各种教程,按照指南,在别处问过 - 我真的没有去任何地方。为了最终达到目的,这就是我所做的:

1。我在/etc/apache2/sites-available/default-ssl.conf中启用了.htaccess文件:

 <Directory /var/www/html>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
 </Directory>

2 即可。我在 var / www / html / site 创建.htaccess文件:

RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
RewriteRule ^(.*)$ %{DOCUMENT_ROOT}/site/index.php [L]

第3 即可。现在,您应该能够通过 http://www.example.com/site/index.php/Bool Bool )找到位于 http://www.example.com/Bool 的网址查询字符串 - 页面标识符)。在这种情况下你不能 - 你被告知服务器上没有名为' Bool '的文件。

2 部分中给出的重写规则以前有效,但在此处不起作用。

有些指南还告诉您做一些古怪的事情,例如在 /etc/htaccess/.htpasswd 设置一些密码系统,然后使用另一个.htaccess文件来调用该等等。尽管我的其他重写规则在这个新的服务器环境中不起作用,但“密码”系统确实有用(我被要求在访问页面之前提供密码) - 但是,我不需要或不需要任何受限制的访问页面

实际上我尝试过的所有内容都没有奏效 - 而且范围从更改 <Directory> default-ssl.conf 标记中的路径到放置.htaccess文件在这里和那里,有和没有密码系统,.htaccess /配置文件中的不同'代码'等等。实际上,每个“指南”都为您提供了不同的解决方案,包括并排除了其他人做/不做的细节和步骤。

我甚至尝试在 AllowOverride 中将 All 更改为 /etc/apache2/apache2.conf ,但没有成功 - 只是内部服务器错误

一个重大问题:如何在任何需要的地方启用.htaccess文件?有人必须在某处使用正确的配置,所以你碰巧在你的服务器上工作了,我想看看你做了什么。

我很高兴能够掌控自己的服务器,这是一次非常棒的学习经历,令人惊讶的是,学习曲线并不太难。我希望我能正确地运行这个应用程序。

1 个答案:

答案 0 :(得分:0)

如果不幸的是,即使在任何情况下您的服务器都没有读取您的HtAccess文件,那么您可以使用此命令来启用服务器上的htaccess accessibity。

在RACKSPACE服务器上启用HTACCESS文件(Debian Os) sudo a2enmod重写

并重新启动apache服务器,现在可以访问它。 谢谢 Raghwendra Pathak