0

我在子目录(G:/wamp/www/test)中有一个测试项目,它只有index.php.htaccess

我试图通过将 RewriteRule 添加到 .htaccess 来制作友好的网址,如下所示:

RewriteEngine on

DirectoryIndex index.php

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

RewriteRule ^/*$ index.php

这适用于所有其他项目,但不适用于这个项目。当我想访问这样的 URL 时:

http://localhost/test/TESTING_URL我得到默认的404 Not Found页面。但是,如果我这样做:http://localhost/test/index.php/TESTING_URL- 它有效。

Apache错误日志给我以下错误:

File does not exist: G:/wamp/www/test/TESTING_URL
4

1 回答 1

1

以下对我有用:

RewriteEngine on

RewriteBase /test/

DirectoryIndex index.php

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
RewriteRule ^/*$ index.php

确保此 .htaccess 文件位于目录中test,并且在更高级别的任何 .htaccess 文件中没有任何冲突的重写规则。

否则,唯一的区别是添加了 RewriteBase 行。

于 2013-07-24T21:56:50.883 回答