Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.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
Php .htaccess文件在新服务器中不工作_Php_Apache_.htaccess - Fatal编程技术网

Php .htaccess文件在新服务器中不工作

Php .htaccess文件在新服务器中不工作,php,apache,.htaccess,Php,Apache,.htaccess,我以前使用过Xampp服务器,这是我在Xampp服务器网站上的代码,它工作得非常好 ErrorDocument 404 /website/error404.html RewriteEngine On RewriteRule ^([0-9A-Za-z-]+)/?$ user.php?name=$1 [NC,L] 但是,现在我带来了一个真正的域名和服务器,并改变了我的整个网站。这是我的新.htaccess代码,它不工作 ErrorDocument 404 http://example.com

我以前使用过Xampp服务器,这是我在Xampp服务器网站上的代码,它工作得非常好

ErrorDocument 404 /website/error404.html 

RewriteEngine On
RewriteRule ^([0-9A-Za-z-]+)/?$ user.php?name=$1 [NC,L] 
但是,现在我带来了一个真正的域名和服务器,并改变了我的整个网站。这是我的新.htaccess代码,它不工作

ErrorDocument 404 http://example.com/error404.html 

RewriteEngine On
RewriteRule ^/([0-9A-Za-z-]+)/?$ http://example.com/user.php?name=$1 [NC,L] 
错误文档工作正常。但不是我用来制作友好URL的重写引擎

变化:

我在
^
之后和
之前添加了
/
([0-9A-Za-z-]+)

我使用的不是
user.php
,而是
http://example.com/user.php


我认为,
mod_rewrite
引擎是
打开的,在我的主机上:

您不需要在替换前加上域前缀,只使用路径就足够了

规则中的模式从不以斜杠开头,请参见

每个目录重写

  • 删除的前缀总是以斜杠结尾,这意味着匹配发生在一个从来没有前导斜杠的字符串上。因此,在每个目录上下文中,^/从不匹配的模式
这意味着您必须保持与XAMPP服务器中相同的模式。删除不必要的标志,并省略域,将得到与以前几乎相同的规则

RewriteRule ^([0-9A-Za-z-]+)/?$ /user.php?name=$1 [L]

唯一的区别是替换部分的前导斜杠
/user.php

确认您的托管提供商是否具有重写模式,这样做可以吗@假设您正在使用Apache。。。请确保mod_rewrite已在默认Apache配置中配置并处于活动状态(应位于此处:/etc/apache2/sites enabled/000 default.conf)