如何检查服务器上是否启用了mod_rewrite?

目前,我正在使用具有光速服务器的托管。托管说已启用,但我无法让我的脚本在那里工作。每当我尝试访问URL时,它都会返回404 - 未找到页面。mod_rewrite

我将相同的代码放在另一台使用Apache运行的服务器上。它在那边工作。所以我想,这是问题所在。.htaccessmod_rewrite

但是托管支持仍然坚持要求我mod_rewrite已打开,因此我想知道如何检查它是否真的启用。

我试图检查,但没有运气,我找不到那里,是因为他们正在使用吗?phpinfo()mod_rewritelightspeed

有没有办法检查?请帮帮我。谢谢。

仅供参考:我的代码是.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]

但结果相同。


答案 1

从命令行中,键入

sudo a2enmod rewrite

如果重写模式已经启用,它会告诉你!


答案 2
  1. 要检查是否启用了mod_rewrite模块,请在 WAMP 服务器的根文件夹中创建一个新的 php 文件。输入以下内容

    phpinfo();

  2. 从浏览器访问您创建的文件。

  3. CtrlF以打开搜索。搜索“mod_rewrite”。如果启用,您会将其视为“已加载的模块”

  4. 如果没有,请打开 httpd.conf(Apache 配置文件)并查找以下行。

    #LoadModule rewrite_module modules/mod_rewrite.so

  5. 删除开头的井号 ('#') 并保存此文件。

  6. 重新启动您的 apache 服务器。

  7. 在浏览器中访问相同的 php 文件。

  8. 再次搜索“mod_rewrite”。您现在应该能够找到它。


推荐