htaccess规则不能处理我的index.php文件

时间:2015-03-23 08:54:10

标签: php regex apache .htaccess mod-rewrite

我将此规则添加到我的根网络服务器上的(htaccess)文件中,以便任何人都可以尝试访问,让我们说/web server/test然后索引会将'test'输入作为字符串,但它是不工作它继续说错误404 not found

我的代码如下:

    <IfModule mod_deflate.c>
    SetOutputFilter DEFLATE
    </IfModule>

    php_flag magic_quotes_gpc off

    RewriteEngine on

    RewriteRule ^([^./]{3}[^.]*)$ /index.php?page=$1 [QSA,L]

这有什么问题吗?

下面是我的apache2 conf文件....我在更改设置后覆盖所有内容时收到错误500.

现在我收到错误500 ...所以我可以提供更多信息......下面是我的htaccess文件代码

    <IfModule mod_deflate.c>
    SetOutputFilter DEFLATE
    </IfModule>

    php_flag magic_quotes_gpc off

    RewriteEngine On

    RewriteRule ^([^./]{3}[^.]*)$ /index.php?page=$1 [QSA,L]

我的apache2.conf文件.....

     <Directory />
     Options FollowSymLinks
     AllowOverride All
     #Require all denied
     Order allow,deny
     Allow from all
     </Directory>

     <Directory /usr/share>
     AllowOverride All
     Order allow,deny
     Allow from all
     Require all granted
     </Directory>

     <Directory /var/www/>
     Options Indexes FollowSymLinks
     AllowOverride All
     Order allow,deny
     Allow from all
     Require all granted
     </Directory>

1 个答案:

答案 0 :(得分:0)

你需要注意的两个关键点。

  1. 确保您的根目录可以被apache覆盖,请检查apache配置,通过以下方式更正设置:

    <Directory />
      Options FollowSymLinks Multiviews
      #AllowOverride none
      AllowOverride All 
      Order allow,deny
      Allow from all
      # Require all denied
    </Directory>
    
  2. 检查您的重写规则并确保它们可以正常工作。在你的情况下,我测试遵守规则,并在我当地工作。

    RewriteEngine On                                                                                                                                              
    RewriteRule ^(\w+)$ /index.php?page=$1 [L] 
    
  3. 希望这可以帮到你!