2011-10-08 110 views
1

如果我的網址是http://www.xyz.com/index.php?view=abc 那麼它應該打開 http://www.xyz.com/abc.php使用URL重寫的.htaccess,查詢字符串作爲文件名

我應該在.htaccess寫?

在此先感謝。

+1

? 'index.php?view = abc'(這是正常重寫的異常)或'abc.php'?你問的方式並沒有說清楚你的用戶會看到哪些。 –

+0

實際上我想如果用戶將打開index.php?view = abc,那麼abc.php將被執行。如果用戶直接輸入abc.php,則他/她無法打開該頁面。用戶必須通過index.php?view = abc來訪問它。 – user985361

回答

2

如果我的網址是http://www.xyz.com/index.php?view=abc那麼它應該打開http://www.xyz.com/abc.php

你不需要爲的.htaccess,只是把index.php文件

$view = $_GET['view']; 
if (strpos($view, '/') === false && $view != "index" && file_exists("$view.php")) 
    require "$view.php"; 

一定不要有任何其他脆弱的PHP文件在你的根目錄(但我建議使用其他/更好的技術來檢查URL的用戶輸入)。


如果你想有重寫倒過來,您可以.htaccess類似於此:

RewriteEngine on 

RewriteCond %{REQUEST_URI} !^/index.php 
RewriteRule ^([a-z]+).php$ /index.php?view=$1 [L] 
你要哪您的最終用戶鍵入他們的瀏覽器
+0

謝謝。 Czechnology。 它的工作原理。 但如果我需要反向情況。如果某個類型的URL類似於 www.xyz.com/login.php,那麼它應該重定向到, www.xyz.com/index.php?view=login – user985361

+1

@ user985361,這不正是我的答案的第二部分? – Czechnology

相關問題