2017-06-17 85 views
0

不工作,我之前使用XAMPP服务器,这是我在XAMPP服务器的网站代码,它是工作完全正常.htaccess文件在新的服务器

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] 

错误文档工作完全正常。但不是东西RewriteEngine叙述,我使用,使友好的URL的

变化:

^之后和之前([0-9A-Za-z-]+)

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

我认为,mod_rewrite引擎是ON,在我的托管上:http://prntscr.com/fksdwj

+1

确认您的托管服务提供商是否在 – Akintunde007

+0

上有重写模式请问您有兄弟吗? http://prntscr.com/fksdwj @Akintunde – Josh

+0

假设您使用的是Apache ...请确保mod_rewrite已配置并在默认的Apache配置中处于活动状态(应位于以下位置:/ etc/apache2/sites-enabled/000- default.conf) – mele

回答

0

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

规则中的模式从来没有一个斜杠开始,看到RewriteRule

每目录重写

  • 移除的前缀始终以斜线结束,这意味着发生匹配反对字符串,其中从不有一个前导斜杠。因此,每个目录上下文中带有^ /的模式都不匹配。

这意味着,您必须保持与XAMPP服务器中相同的模式。删除不必要的NC标志,并留下了域名,将让你几乎同样的规则之前

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

唯一的区别是在替换部分/user.php的斜线。

相关问题