(请原谅,我右手受伤了,所以打字有困难)
我最近设置了一个运行“LAMP Stack”的新 Linux 服务器。我使用 PuTTY、Git 和 friend 。通常,我在预先设置的环境中工作 - 我只是一名应用程序开发人员。从技术上讲,这将算作我的第一次“个人冒险”。我以前从未获得过服务器的 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 的 URL。 通过 http://www.example.com/Bool (Bool 类似于查询字符串 - 页面标识符)。在这种情况下您不能 - 您被告知服务器上没有标题为“Bool”的文件。
第2部分中给出的重写规则以前有效,但在这里不起作用。
一些指南还告诉您做一些古怪的事情,例如在 /etc/htaccess/.htpasswd
设置一些密码系统。 并有另一个 .htaccess 文件来调用它或其他东西。尽管我的其他重写规则在这个新的服务器环境中不起作用,但“密码”系统确实起作用了(我被要求在访问页面之前提供密码) - 但是,我不需要或不想要任何类似的受限访问页面。
实际上我尝试过的所有方法都不起作用 - 这包括更改 <Directory>
中的路径 default-ssl.conf
内的 标签 将 .htaccess 文件放在这里或那里,有或没有密码系统,.htaccess/配置文件中的不同“代码”等等。实际上,每个“指南”都为您提供了不同的解决方案,包括和排除其他人执行/不执行的细节和步骤。
我什至尝试过更改 AllowOverride
至 All
在 /etc/apache2/apache2.conf
没有成功 - 只是一个内部服务器错误。
最重要的问题:如何在需要的地方使用 .htaccess 文件?必须有人在某处使用正确的配置,所以您碰巧在您的服务器上运行了该配置,我想看看您做了什么。
我很高兴能够负责自己的服务器,这是一次美妙的学习经历,令人惊讶的是,学习曲线并不太困难。我希望我能让这个应用程序正常运行。
最佳答案
如果不幸的是,即使在任何情况下,您的服务器都没有读取您的 HtAccess 文件,那么您可以使用此命令来启用服务器上的 htaccess 可访问性。
在 RACKSPACE 服务器(Debian Os)上启用 HTACCESS 文件 sudo a2enmod 重写
然后重新启动 apache 服务器即可访问。 谢谢 拉格温德拉·帕塔克
关于linux - 新的 Apache 服务器 - .htaccess 出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25354961/