2017-06-01 46 views
1

我想改變:mod_rewrite對特定文件中刪除.php然後阻止訪問原始文件

www.foo.com/bar.php 

要:

www.foo.com/bar 

而在這之後,防止/條直接訪問。 PHP但允許/酒吧:

www.foo.com/bar.php 404 Not Found 

我想訪問bar.php給404錯誤。
基本上,我希望它看起來像「酒吧」是一個目錄。

這甚至可能嗎?

我當前的代碼是:

RewriteEngine On 
RewriteRule ^bar/?$ bar.php [NC] 
+0

您的「當前密碼」似乎已經做的主要部分 - 任何與此問題?據推測,您的應用程序中的URL已經更改爲'/ bar'? – DocRoot

回答

1

您可以使用此:

RewriteEngine on 
#prevent direct access to /bar.php 
#return a 404 error if /bar.php is direct accessed 
RewriteCond %{THE_REQUEST} /bar\.php [NC] 
RewriteRule^- [R=404,L] 
#rewrite /bar to /bar.php 
#this will internally forward http://example.com/bar to http://example.com/bar.php 
RewriteRule ^bar$ /bar.php [L] 
+0

謝謝,它的工作原理!只是一個問題,[L]國旗做什麼? NC旗幟似乎工作 – Persson

+0

@SveaNils https://httpd.apache.org/docs/current/rewrite/flags.html#flag_l – DocRoot

相關問題