htaccess重写规则在url中没有index.php时不起作用

时间:2013-08-16 16:04:18

标签: .htaccess

我在ubuntu m / c中使用apache2。我启用了mod_rewrite并在apache2.conf中更改了Allowoveride All

现在我正在尝试在我的服务器中安装Bug-Genie应用程序 但是遵循.htaccess规则并不是例外。

我可以访问:

http://localhost/roxsoft/thebuggenie-3.2.6/thebuggenie/**index.php**/wiki

但我无法访问: - 404错误

http://localhost/roxsoft/thebuggenie-3.2.6/thebuggenie/wiki

这是我的.htaccess文件:

# .htaccess file for The Bug Genie

# make sure that magic_quotes and register_globals is always off
<IfModule mod_php5.c>
    php_flag magic_quotes_gpc   off
    php_flag register_globals   off
</IfModule>

# rewrite rules
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
# Example:
# RewriteBase /
# or
# RewriteBase /dev/thebuggenie

  # skip all hidden files (starting with a .)
  RewriteCond %{REQUEST_URI} \..+$
  RewriteCond %{REQUEST_URI} !\.(html|wsdl|json|xml)$
  RewriteRule .* - [L]

  # redirect to front controller
  RewriteRule ^(.*)$ index.php?url=$1 [NC,QSA,L]

</IfModule>
# Stop people accessing directories they shouldn't have access to
RedirectMatch 403 ^/\.svn(/|$)

2 个答案:

答案 0 :(得分:3)

试试这个:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|assets|images|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L]

将包含JavaScript和CSS的文件夹添加到重写条件

答案 1 :(得分:0)

这是我刚刚管理的解决方案。如果有人遇到同样的问题,这可能会有所帮助......

我刚刚删除了

并在htaccess中添加了其他条件 这是它:

  RewriteCond %{REQUEST_URI} \..+$
  RewriteCond %{REQUEST_URI} !\.(html|wsdl|json|xml)$
  RewriteCond %{REQUEST_URI} !\.(jpg|png|css|js|php|gif|ttf|woff)$   ---- ADD FILTER CONDITION.
  #RewriteRule .* - [L]                                              ---- COMMENT THIS LINE************

  # redirect to front controller
  RewriteRule ^(.*)$ index.php?url=$1 [NC,QSA,L]