我正在win7上涉水,以防万一。我正在尝试通过route.php路由所有请求以获得干净的URL。下面是我的htaccess
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_URI} !(auth|folder2) [NC]
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.*) ./route.php?path=$1 [L]正如您所看到的,这个规则应该适用于所有文件,当我在我以前的wamp安装上运行它时,它就适用了。现在,在将文件复制到新系统后,由于某种原因,该规则似乎适用于除 index.php以外的所有链接。因此,如果我尝试http://localhost/proj,在新系统中没有路由。有什么想法吗?
在有人问之前,是的,rewrite_module是打开的,htaccess正在被读取和执行,因为它适用于所有其他链接,比如http://localhost/proj/users,还因为如果我尝试在htaccess中放置垃圾值,它会抛出一个很好的‘内部服务器错误’。
发布于 2014-01-09 00:29:05
我猜那个文件夹中有一个index.php,并且这个条件:
RewriteCond %{SCRIPT_FILENAME} !-f 只有当文件不存在时,...tells apache才会执行重写。
我建议或重命名该文件,因为您需要该条件来路由静态资产,如图像、脚本等。
如果该文件夹中没有index.php (或index.html),只需将route.php定义为该目录中的默认文件。在.htaccess中:
DirectoryIndex route.php index.php index.html index.htm(请注意,这也适用于任何子目录)
https://stackoverflow.com/questions/21009397
复制相似问题