(原谅我,我的右手受伤了,所以输入时会遇到麻烦)
我最近建立了一个运行'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文件?有人必须在某处使用正确的配置,所以你碰巧在你的服务器上工作了,我想看看你做了什么。
我很高兴能够掌控自己的服务器,这是一次非常棒的学习经历,令人惊讶的是,学习曲线并不太难。我希望我能正确地运行这个应用程序。
答案 0 :(得分:0)
如果不幸的是,即使在任何情况下您的服务器都没有读取您的HtAccess文件,那么您可以使用此命令来启用服务器上的htaccess accessibity。
在RACKSPACE服务器上启用HTACCESS文件(Debian Os) sudo a2enmod重写
并重新启动apache服务器,现在可以访问它。 谢谢 Raghwendra Pathak