2016-06-10 56 views
1

我應用了一個重寫規則來顯示我的php文件,在文件結尾沒有.php文件。這是我有:.htaccess在重寫後避免使用.php訪問文件

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

但我遇到的問題是,我可以通過兩種方式訪問​​該文件。有或沒有.php。例如:mywebsite.com/file.phpmywebsite.com/file都能正常工作,但我只希望第二個工作,所以我需要添加一些東西到我的.htaccess文件中以將mywebsite.com/file.php重定向到mywebsite.com/file或顯示404錯誤。但我認爲第一種選擇更好。

是否有可能將我的.htaccess代碼與我想要的?如果是這樣,需要添加什麼?

回答

1

您可以使用此規則刪除擴展名爲.php

RewriteEngine on 
#1)externally redirect from "/file.php" to "/file" 
RewriteCond %{THE_REQUEST} /([^.]+)\.php [NC] 
RewriteRule^/%1 [L,R] 
#2)internally map "/file" to "/file.php" 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^\.]+)$ $1.php [NC,L] 
+1

運行完美!謝謝:) – danibg

+0

我發現這樣做的問題。因爲我以「ajaxexample.php」的形式訪問它們,所以我現在所做的每個ajax調用都不是工作。它有任何解決方案嗎? – danibg