重写到文件夹时.htaccess中的无限循环

时间:2015-10-29 08:47:26

标签: apache .htaccess mod-rewrite

我的域名有一些文件夹。

  • 应用
  • 脚本

我想将.htaccess所有内容重定向到商店文件夹,但应用脚本除外。我写了下一个.htaccess,但我有一个500 ERROR INTERNAL SERVER。我看到了日志文件,它说有无限循环。

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/app
RewriteCond %{REQUEST_URI} !^/scripts
RewriteRule (.*)$ shop/$1 [L]

我在同一个托管服务提供商处有其他应用程序和cms托管。即使具有相同的结构并且它完美无缺,那么我也不承认为什么在这里不起作用。

如何避免无限循环?

编辑:我希望重定向不可见,而不是[R]

编辑2 :我的目的是:
有这个文件夹:

  • 应用
  • 脚本

使用以下网址访问商店文件夹: domain.com
使用以下网址访问应用文件夹: domain.com/app
访问脚本文件夹: domain.com/scripts

1 个答案:

答案 0 :(得分:0)

您还必须排除以shop开头的网址:

RewriteEngine On

RewriteRule ^/?$ /shop/ [L]

RewriteCond %{THE_REQUEST} ^GET\ /shop(/\S*)? [NC]
RewriteRule ^shop / [R=301,L,NC]

RewriteCond %{REQUEST_URI} !^/(app|scripts|shop)
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /shop/$1 [L]