2012-06-30 26 views
3

是否可以使用.htaccess來防止頁面被服務,除非它是通過重寫規則? 例如我有乾淨的URL,所以致電xyz.com/hi服務xyz.com/hi.php使用htaccess來防止調用頁面,除了使用RewriteRule

我想實現如果被調用的url = xyz.com/hi.php那個頁面opps.html得到服務,但正常xyz.com/hi仍然有效。

THX藝術

DirectoryIndex h1.php 
Options +FollowSymLinks 
RewriteEngine on 
RewriteBase/

# stop calling page by ext 
RewriteRule .*\.(php)$ opps.html [L] 

# main start page 
RewriteRule ^hi$ hi.php [L] 
+1

你的問題是,一旦'hi'變成了'hi.php',服務器就會向'hi.php'發出** new **請求。那麼你的'.htaccess'就會看到'hi.php'的請求並且重定向到'opps.html' –

回答

0

您需要添加,以防止越來越改寫爲oops.html PHP擴展的條件。如果你想防止對PHP頁面的實際要求,你可以使用%{THE_REQUEST}變量RewriteCond內:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*\.php\ 
RewriteRule .*\.(php)$ opps.html [L] 

這樣,內部重寫的URI與.php爲此將不會被改寫爲oops.html

+0

thx作爲建議,但是這給了我'RewriteCond:bad flag delimiters'。我曾嘗試作爲.htaccess文件中的第一個和最後一個規則。 Thx Art –

+0

看起來這是一個cut'n'paste的FTP錯誤,寫出來手動工作一種享受,thx @JonLin –

相關問題