2012-11-02 47 views
1

我在重寫規則的htaccess問題隱藏php文件: 例如: 我的PHP文件main.php 我們需要在用戶試圖www.mysite.com/hello,則顯示www.mysite.com/main.php 此expamle我們.htacces有下面的代碼:重寫規則htaccess以及所有

# BEGIN Htaccess 
Options +FollowSymLinks 
RewriteEngine On 
RewriteRule ^hello/*$ main.php 

但在此代碼,如果用戶可以打開www.mysite.com/helloWWW .mysite.com/main.php

我需要的,如果用戶試圖www.mysite.com/main.php則顯示錯誤但如果試圖爲main.php

www.mysite.com/hello查看內容

謝謝;)

+0

試試這個:RedirectMatch 404「/ main *」 –

回答

0

你需要來匹配實際的請求在這裏:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /main\.php 
RewriteRule^- [L,R=404] 

如果需要,您可以在RewriteEngine On之下添加。處理這個問題的另一種方式是在main.php腳本中檢查$_SERVER['REQUEST_URI'],如果它是/main.php而不是提供內容,則返回404響應。

+0

對我不起作用。你接受的答案有錯嗎? – B4NZ41

0

你不可以404 main.php你也不可以301它到/你好,因爲它會進入無限循環。 你必須檢查main.php中的url,如果它不是hello,重定向到/你好