无法加载 mod_rewrite Apache 模块
Cannot load mod_rewrite Apache module
我正在尝试使用 Apache24 server
的 mod_rewrite
模块,但我无法加载它。我知道有很多关于这个主题的问题,我已经完成了所有这些问题,但似乎没有任何效果。这些是我到目前为止所遵循的步骤---
- 已更改
httpd.conf
文件进行了这些更改--
一个。未注释 LoadModule rewrite_module modules/mod_rewrite.so
b。将 AllowOverride None
更改为 AllowOverride All
重新启动了 apache 服务器
使用命令提示符命令 httpd -M
检查加载的模块。我可以看到 mod_rewrite 模块已经加载。我附上下面的图片。
但是在执行所有这些步骤后,我无法在 phpinfo
中看到 mod_rewrite 作为加载模块。
如上图所示,没有 mod_rewrite 加载模块。
另外,作为一个疯狂的 hack,我什至尝试使用 .htaccess
文件重写 URLs,但这不起作用。 Apache 似乎忽略了 .htaccess
文件,尽管我已经将该文件放在我的根目录中。
Note: I am running `PHP` as an apache module
Using `WAMP` stack
Using `localhost` as server
出于 URL 重写目的,我非常需要这个模块。你们能推荐一些其他的方式来加载这个模块吗?
这两天我都快崩溃了。您认为需要重新安装还是与路径依赖性有关。任何建议将不胜感激。
编辑
我尝试从虚拟主机重写 URL,因为答案表明模块已加载,它既不依赖于 .htaccess
也不依赖于 info.php
。但它仍然没有重定向。我在下面添加 Virtual host
设置---
<VirtualHost *:80>
<Directory "/Apache24/htdocs">
Options FollowSymLinks
AllowOverride All
DirectoryIndex index.html index.php
</Directory>
ServerName localhost
DocumentRoot "/Apache24/htdocs"
ErrorLog "/Apache24/logs/error.log"
CustomLog "/Apache24/logs/access.log" combined
<directory "/Apache24/htdocs">
<IfModule rewrite_module>
Options +FollowSymlinks
RewriteEngine On
</IfModule>
<IfModule rewrite_module>
RewriteRule ^working.php fun.html
</IfModule>
</directory>
# Rewrite Rules #####################
RewriteEngine On
RewriteRule ^working.php fun.html
# end Rewrite Rules #################
</VirtualHost>
当我尝试 运行 fun.html 时,上面的代码不会将其重定向到 working.php。它只是说 the requested URL /working.php was not found on this server.
。
提前致谢!
如果 apachectl -M 或 httpd -M 表示模块已加载,则已加载。 php信息是 运行 由 php 脚本生成的外部事物,为什么你应该信任它而不是 httpd 自己的软件?
如果您确实需要使用 mod_rewrite,只需确保在其他重写指令之前添加 RewriteEngine on
。
注意:我真的会确保我需要 mod_rewrite 知道我接下来要配置什么,在很多情况下没有必要并且过度使用。
非常重要:要配置您的服务器,如果它是您的服务器 您不需要 .htaccess,并且 mod_rewrite也不依赖于它
我正在尝试使用 Apache24 server
的 mod_rewrite
模块,但我无法加载它。我知道有很多关于这个主题的问题,我已经完成了所有这些问题,但似乎没有任何效果。这些是我到目前为止所遵循的步骤---
- 已更改
httpd.conf
文件进行了这些更改--
一个。未注释 LoadModule rewrite_module modules/mod_rewrite.so
b。将 AllowOverride None
更改为 AllowOverride All
重新启动了 apache 服务器
使用命令提示符命令
httpd -M
检查加载的模块。我可以看到 mod_rewrite 模块已经加载。我附上下面的图片。
但是在执行所有这些步骤后,我无法在 phpinfo
中看到 mod_rewrite 作为加载模块。
.htaccess
文件重写 URLs,但这不起作用。 Apache 似乎忽略了 .htaccess
文件,尽管我已经将该文件放在我的根目录中。
Note: I am running `PHP` as an apache module
Using `WAMP` stack
Using `localhost` as server
出于 URL 重写目的,我非常需要这个模块。你们能推荐一些其他的方式来加载这个模块吗?
这两天我都快崩溃了。您认为需要重新安装还是与路径依赖性有关。任何建议将不胜感激。
编辑
我尝试从虚拟主机重写 URL,因为答案表明模块已加载,它既不依赖于 .htaccess
也不依赖于 info.php
。但它仍然没有重定向。我在下面添加 Virtual host
设置---
<VirtualHost *:80>
<Directory "/Apache24/htdocs">
Options FollowSymLinks
AllowOverride All
DirectoryIndex index.html index.php
</Directory>
ServerName localhost
DocumentRoot "/Apache24/htdocs"
ErrorLog "/Apache24/logs/error.log"
CustomLog "/Apache24/logs/access.log" combined
<directory "/Apache24/htdocs">
<IfModule rewrite_module>
Options +FollowSymlinks
RewriteEngine On
</IfModule>
<IfModule rewrite_module>
RewriteRule ^working.php fun.html
</IfModule>
</directory>
# Rewrite Rules #####################
RewriteEngine On
RewriteRule ^working.php fun.html
# end Rewrite Rules #################
</VirtualHost>
当我尝试 运行 fun.html 时,上面的代码不会将其重定向到 working.php。它只是说 the requested URL /working.php was not found on this server.
。
提前致谢!
如果 apachectl -M 或 httpd -M 表示模块已加载,则已加载。 php信息是 运行 由 php 脚本生成的外部事物,为什么你应该信任它而不是 httpd 自己的软件?
如果您确实需要使用 mod_rewrite,只需确保在其他重写指令之前添加 RewriteEngine on
。
注意:我真的会确保我需要 mod_rewrite 知道我接下来要配置什么,在很多情况下没有必要并且过度使用。
非常重要:要配置您的服务器,如果它是您的服务器 您不需要 .htaccess,并且 mod_rewrite也不依赖于它