.htaccess没有在live系统上工作

时间:2016-08-29 18:58:57

标签: php .htaccess xampp

我正在使用以下.htaccess规则:

RewriteRule ^news/(.*),(.*).html$   news.php?id=$2 [L]

使用时,例如。以下网址:

http://www.foo.com/news/bar,303.html

它适用于我的本地xampp,但不适用于实时服务器.var_dump($ _ GET)返回一个空数组,因此过滤器不会定义id参数。 任何想法有什么不对?

编辑:我安装了mod_rewrite,它适用于大多数链接而不是这个..

3 个答案:

答案 0 :(得分:2)

您的规则似乎没问题。在您的实时服务器上<Editor HeightRequest = "50" /> 选项可能已启用。关闭它使用:

MultiViews

在.htaccess的顶部。

选项Options -MultiViews (请参阅http://httpd.apache.org/docs/2.4/content-negotiation.html)由MultiViewsApache's content negotiation module之前运行使用,并使Apache服务器匹配文件扩展名。因此,如果mod_rewrite是网址,那么Apache将提供/news

答案 1 :(得分:1)

假设你安装了mod_rewrite,它可能不是全局激活而需要激活

 RewriteEngine On
 RewriteBase /news/
 RewriteRule ^news/(.*),(.*).html$   news.php?id=$2 [L]

例如;转入重写,并指定直接将规则应用于

答案 2 :(得分:1)

您可能想要从apache启用重写模块

打开终端并执行以下代码

sudo a2enmod rewrite
sudo service apache2 restart

现在可以使用重写模块,按照下面给出的步骤。

  
      
  1. 使用以下命令在任何编辑器中打开默认的Apache配置文件。
  2.   
sudo nano /etc/apache2/sites-enabled/000-default.conf
  
      
  1. 在该文件中,您将在第1行找到该块。在该块的内部,添加以下块:
  2.   
<Directory /var/www/html>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
</Directory>

再次重启apache

sudo service apache2 restart

了解有关重写模块Click here

的更多信息
  • 注意:确保您有专用服务器来执行上述步骤。