2010-08-14 57 views
0

說我推出了CMS。每個用戶都可以通過domain.com/username/index.php獲取他們自己的頁面。在我考慮有一個新的帳戶創建一個文件夾的那一刻,在所述位置,使一個索引文件,像這樣:如何使用url路徑作爲腳本的輸入?

<?php 
$username=blahblah; 
require("../indextemplate.php"); 
?> 

這將很好地工作。每個人都有自己的自定義頁面等。我覺得很愚蠢的是,我必須爲每個獨特的用戶製作相同的文件夾和文件。有沒有一種方法來抓住使用domain.com/username的人。並將它們直接發送到indextemplate.php?

當我打字時,我意識到我可以使用'該頁面不存在'重定向apache與$ _SERVER [「REQUEST_URI」]組合(不確定apache重定向是否會使w/url)轉到正確的頁面。

我想我問的是哪種方法更好(創建數百萬個文件夾/頁面是解決方案,我發現谷歌搜索,但它真的看起來更糟糕)。對於第二種選擇他們是一個可怕的缺點嗎?或者第三種方式。

+0

你的意思是,使這個社會維基? – 2010-08-14 20:45:58

回答

1

如果要使用這些URL重定向,請使用.htaccess文件。

基本上的.htaccess可以告訴服務器來治療example.com/user/Idiomaticexample.com/index.php?q=user &名=地道,那麼它的所有PHP/MySQL的加載這些$ _GET變量的數據。這被很多CMS'es使用,如Drupal。

http://en.wikipedia.org/wiki/Rewrite_engine

創建一個新的文件,每一次都是沒有意義的,辦法很多文件將被創建。

+0

謝謝!看起來正是我想要的。 – Idiomatic 2010-08-15 03:04:10

0

可能,

<?php 
$username=blahblah; 
require("../indextemplate.php?username=".$username); 
?> 

然後,我想你需要在你的indextemplate腳本中使用$ _GET [ '用戶名'。托盤吧!

0

看看mod_rewrite

例如,你有user.php的:

$username = $_GET['username']; 
require("../indextemplate.php"); 

重寫可以配置是這樣的:

RewriteEngine On 
RewriteRule ^(\w+)/?$ user.php?username=$1 [L] 
相關問題