.htaccess - 仅适用于index.php /不带/

时间:2013-07-24 21:44:12

标签: php .htaccess url mod-rewrite

我在子目录(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

1 个答案:

答案 0 :(得分:0)

以下对我有用:

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行。