2013-03-19 83 views
2

我知道有很多问题,例如“如何删除.php扩展名,以便/ test /将成为/test.php” ,但是如果用户直接进行测试。 PHP它不替代扩展。 所以我想要替换.php它应该是/。 这里是我使用的.htacces的一部分:强制在.htaccess中删除.php扩展名

RewriteEngine on 

RewriteRule stuff\.php /other_stuff/ [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^([^/]+)/$ $1.php 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$ 
RewriteRule (.*)$ /$1/ [R=301,L] 
+0

你应该做的是** **重定向从'/ file.php'到'/文件/'用户。 – 2013-03-19 16:49:04

+0

重定向发出无限循环:/ – JonasT 2013-03-19 17:04:43

+0

当我想到它时,我遇到了同样的问题。我确信我当时就放弃了。所以祝你好运:) – 2013-03-19 17:05:40

回答

3

你需要做的与实际的请求而不是URI的检查(它获取由其他规则重写)。 %{THE_REQUEST}变量在重写引擎的过程中不会改变。尝试添加这些规则正下方RewriteEngine指令:

RewriteCond %{THE_REQUEST} ^(GET|HEAD)\ /([^/]+)\.php(\?|\ |$) 
RewriteRule^/%2/ [L,R=301]