Php .htaccess文件在新服务器中不工作
我以前使用过Xampp服务器,这是我在Xampp服务器网站上的代码,它工作得非常好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
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)