如何在没有php扩展的情况下加载php文件

时间:2015-06-26 17:07:54

标签: php .htaccess

我有这个工作htaccess

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^test/([0-9]+)/?$ test.php?id=$1 [L]

我的问题如果我在我的htaccess上有这个规则我怎么能加载没有.php扩展名的php文件。

我将此添加到我的htacess

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

工作正常http://localhost/myprojectfolder/account 但这不再适用http://localhost/myprojectfolder/1 我怎样才能使它们都起作用?

提前谢谢。

2 个答案:

答案 0 :(得分:3)

尝试在php扩展规则中添加其他条件:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

确保在您添加.php扩展名时,它实际上指向存在的文件。

答案 1 :(得分:2)

如果您在其他问题中使用此网址http://localhost/myprojectfolder/1。然后test甚至不应该在第一条规则中。然后你可以确保文件存在。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9]+)/?$ test.php?id=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^([^\.]+)$ $1.php [NC,L]