目前我使用的是lightspeed服务器的主机。主机显示mod_rewrite
已启用,但我无法让我的脚本在那里工作。每当我尝试访问网址时,它都会返回404 - not found page.
我将相同的代码放在另一台运行Apache的服务器上。它在那里工作。所以我猜,这是.htaccess
和mod_rewrite
的问题。
但是托管支持人员仍然坚持他们的mod_rewrite是开着的,所以我想知道如何才能检查它是否真的启用了。
我试着去找phpinfo()
,但是没找到mod_rewrite
,是不是因为他们在用lightspeed
有什么方法可以检查一下吗?请帮帮我。谢谢。
仅供参考:我的.htaccess
代码是
Options -Indexes
<IfModule mod_rewrite.c>
DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index\.php|assets|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]
</IfModule>
我也试过这样
DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index\.php|assets|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]
但是同样的结果。
发布于 2016-06-08 13:16:51
在命令行中,键入
sudo a2enmod重写
如果重写模式已经启用,它会告诉你!
发布于 2013-09-13 22:47:54
如果您使用的是虚拟主机配置文件,请确保有问题的虚拟主机在某个位置具有指令AllowOverride All
:
<VirtualHost *:80>
...
<Directory "directory/of/your/.htaccess">
AllowOverride All
</Directory>
</VirtualHost>
基本上,这表示允许处理所有.htaccess指令。
发布于 2017-01-29 22:47:24
这在CentOS上有效:
$ sudo httpd -M |grep rewrite_module
应输出rewrite_module (shared)
https://stackoverflow.com/questions/7337724
复制相似问题