Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mod rewrite 如何在任何操作系统上启用mod_rewrite?_Mod Rewrite_Php - Fatal编程技术网

Mod rewrite 如何在任何操作系统上启用mod_rewrite?

Mod rewrite 如何在任何操作系统上启用mod_rewrite?,mod-rewrite,php,Mod Rewrite,Php,如果我理解正确,我需要在httpd.config中添加一些内容来启用mod_rewrite。如果这是真的,我需要在httpd.conf或apache.conf中输入什么?请注意操作系统。不,mod_rewrite是一个Apache模块,与PHP无关 要激活模块,需要激活httpd.conf中的以下行: LoadModule rewrite_module modules/mod_rewrite.so 要查看它是否已处于活动状态,请尝试将.htaccess文件放入包含该行的web目录中 Rewri

如果我理解正确,我需要在
httpd.config
中添加一些内容来启用mod_rewrite。如果这是真的,我需要在
httpd.conf
apache.conf
中输入什么?请注意操作系统。

不,
mod_rewrite
是一个Apache模块,与PHP无关

要激活模块,需要激活
httpd.conf
中的以下行:

LoadModule rewrite_module modules/mod_rewrite.so
要查看它是否已处于活动状态,请尝试将
.htaccess
文件放入包含该行的web目录中

RewriteEngine on

如果这样做没有引发500内部服务器错误,并且
.htaccess
文件得到解析,URL重写就可以工作。

否,您不需要这样做
mod_rewrite
是一个Apache模块。它与
php.ini
模块重写无关。在大多数情况下,模块内置于服务器中

使用.htaccess


使用位于

的Mod Rewrite Generator network solutions提供了将php.ini放入cgi文件箱的建议,以启用Mod_Rewrite

仅供使用Apache2在Debian上启用Mod_Rewrite的用户参考:

检查是否启用了mod_重写:

在mods_中查找通过运行启用的模块链接

ls /etc/apache2/mods-enabled | grep rewrite
如果此输出为“重写.加载”,则模块启用。(注意:您到apache2的路径可能不是/etc/,但很可能是。)

如果尚未启用mod_rewrite,则启用它:

启用模块(基本上创建了我们在上面寻找的链接):

重新加载所有apache配置文件:

service apache2 restart

在我的例子中,即使在完成了所有这些配置之后,问题还是出现了(@Pekka提到了httpd.conf和.htaccess文件中的更改)。我加了一句才解决

<Directory "project/path">
  Order allow,deny
  Allow from all
  AllowOverride All
</Directory>

命令允许,拒绝
通融
允许超越所有
到vhost文件中的虚拟主机配置


2017年9月29日编辑(对于Apache 2.4,为了使用mod_rewrite,您可以在终端中键入以下命令:

 $ su

 $ passwd **********

 # a2enmod rewrite
之后重新启动apache2

 # service apache2 restart

 # /etc/init.d/apache2 restart


如果它与托管站点相关,请询问您的托管站点,或者如果您想在本地计算机中启用它,请查看与在wamp apache中启用重写模块相关的youtube分步教程
Wamp服务器图标->Apache->Apache模块并选中重写模块选项
它应该被检查,但之后wamp需要重新启动所有服务

谢谢…我如何判断.htaccess文件是否正在被解析?@John你通常不能在共享主机上激活mod_rewrite your:这取决于主机公司。试着
rewrite engine
看看它是否已经处于活动状态-如果不是,你就是g我得跟他们谈谈。@John更新了你的评论:在文件中写入类似于
asdfasdf
的内容。这会给你带来
500个内部服务器错误
。是的,好的。它正在被解析。不过,我仍然可以进行简单的重写。@John是否接受
上的重写引擎而没有错误?如果接受,问题在于你的重写语句。也许值得一提新问题。我也听过,但我认为这是错误的。我建议只检查你的.htaccess文件的语法以排除任何错误。几乎所有运行Apache的服务器,包括Netsol的服务器,默认情况下都启用了mod_rewrite。这正是我在排除perma故障时所需要的链接Wordpress问题。感谢您提供我需要的特定SSH命令。这是一个完美的答案!这个答案并不清楚。如果OP询问如何启用某个内容,您应该假设它已禁用。请通过@farmergeden检查答案
 $ su

 $ passwd **********

 # a2enmod rewrite
 # service apache2 restart

 # /etc/init.d/apache2 restart
 # service apache2 restart