我有这个工作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
我怎样才能使它们都起作用?
提前谢谢。
答案 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]