ein*_*ein 10 php apache mod-rewrite
我知道这个问题已被问过好几次了.但我无法让它发挥作用.
我在我的Ubuntu服务器上安装了Apache2我还可以确认使用phpinfo();安装了mod_rewrite.我还在我的根文件夹(/var/www/.htaccess)中放了一个名为.htaccess的文件.在我的.htaccess文件中,我粘贴以下代码:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^.*$ test.php
Run Code Online (Sandbox Code Playgroud)
所以一切都被重定向到test.php
但它仍然无效.所以我检查了/ etc/apache2下的httpd.conf文件.它是完全空的,没有代码行(这对我来说有点奇怪)?!但是在检查Stackoverflow答案时,httpd.conf中至少应该包含以下代码:
<Directory />
Options FollowSymLinks
AllowOverride All
Order deny,allow
Deny from all
Satisfy all
</Directory>
Run Code Online (Sandbox Code Playgroud)
所以我将该代码粘贴到httpd.conf中.并重新启动Apache sudo /etc/init.d/apache restart.它仍然不起作用?
我还测试打开文件//000-默认并启用站点-/网站可用/默认情况下,所有虚拟主机设置的谎言和改变的目录下/var/www,并/给了AllowOverride全部.mod_rewrite仍然无法正常工作.谁能帮帮我吗.这个问题一直在烘烤我的坚果.
另外,我的apache2.conf文件不起作用.我试着写som废话.它仍然给我正常结果而不是http 500错误
bin*_*680 10
如果你运行这个命令,
sudo a2enmod rewrite
Run Code Online (Sandbox Code Playgroud)
ubuntu将在激活或已经运行时输出.
来自Niels Bom的所有建议都是最聪明的(我认为).但我会将此添加为第一个建议:尝试通过Ubuntu命令启动并停止apache:然后当它应该停止时,确保它已停止,即验证您的本地页面不再显示.
/etc/apache2/.应该有apache2.conf conf.d envvars httpd.conf mods-available mods-enabled ports.conf sites-available sites-enabledmods-enabled如果启用了mods你会在哪里找到,然后你可以继续,否则看看有关启用modrewrite的其他答案sites-enabled:在哪里你可以找到启用了...(猜猜是什么?)的网站.应该有default网站.<virtualhost>- </virtualhost>标签之间添加配置(当然).请告诉我发生了什么,我很乐意相应地更新我的问题.
因为这个帖子在google上排名很高,这里有另一个解决方案:
是什么导致了这个问题?
这是因为apache中的标准定义只是阻止所有.htaccess的东西.Seriouslsy.这似乎是Ubuntu 12.04 LTS的初始状态.
解
在/ etc/apache2/sites-available/default(这是一个文件,而不是一个文件夹)中有一个代码块就像
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride XXXXXXXXXXXXXXXXXXX
Order allow,deny
allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)
在这里你应该改变
AllowOverride None
Run Code Online (Sandbox Code Playgroud)
至
AllowOverride All
Run Code Online (Sandbox Code Playgroud)
重要
你必须使用sudo权限进行这些更改,否则Ubuntu将不会保存文件.在RESTART之后,你的.htaccess东西应该可行.要测试.htaccess只需将一些无意义的文本放入其中并浏览localhost或127.0.0.1 - >如果您看到"内部服务器错误":瞧!删除废话,你准备好了.
| 归档时间: |
|
| 查看次数: |
26854 次 |
| 最近记录: |