我是新來.htacces和年齡,我一直試圖讓我的網域:使用的.htaccess重寫post.php中POST_ID = 20 /後/本,是最標題/
www.domain.com/post.php?post_id=20
的東西像這樣:
www.domain.com/post/this-is-the-title/
正如我說我是新來的.htaccess但任何將幫助請! 注意:我會以某種方式從SQL數據庫獲取我的博客文章的標題
我是新來.htacces和年齡,我一直試圖讓我的網域:使用的.htaccess重寫post.php中POST_ID = 20 /後/本,是最標題/
www.domain.com/post.php?post_id=20
的東西像這樣:
www.domain.com/post/this-is-the-title/
正如我說我是新來的.htaccess但任何將幫助請! 注意:我會以某種方式從SQL數據庫獲取我的博客文章的標題
如果頁面標題是數據庫驅動的(或者動態的),我看不到如何避免使用.htaccess重寫。在PHP腳本中使用路由會更有意義。
我寫了一個非常簡單的路由方法here。這只是爲了讓人們瞭解這個主題,但是你應該能夠建立一個基於數據庫的路由器。
本質上,通過index.php路由所有的流量,然後獲取請求URI並決定要加載的資源。
[編輯]
讓我解釋一下,利用我的博客文章的信息。
假設您已經建立並運行了您的站點,請首先將流量引導至index.php。你這樣做在.htaccess,它可以這樣做:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
然後,在index.php文件(或在這與所謂的index.php腳本),你可以得到請求URI:
$uri = $_SERVER["REQUEST_URI"];
好的,到目前爲止好。現在讓我們假設你的數據庫保存頁面內容以及頁面別名。開放的我們將最有可能是頁面的別名,因此,所有你需要做的是這樣的:
$pdo = new PDO(/* your db connection params */);
$page = $pdo
->query("SELECT * FROM pages WHERE alias = :alias",
array("alias" => $uri)
)
->fetch();
此時你應該有與目標(或別名),在URI字符串的頁面內容。所有你現在需要做的是顯示你想要的任何方式:
echo $page["content"];
您不能。您必須將標題放在查詢字符串中。 .htaccess無法安全地從數據庫中獲取任何內容。 由於您要重寫url,爲什麼不簡單地在URI中寫入帖子標題?
因爲你需要得到「您的博客文章,從一個SQL數據庫莫名其妙的標題」你不能使用.htaccess做到這一點,使用PHP重定向。 :)
我知道這是舊的,但我只是有時間來嘗試它,在index.php我會把'$ uri = $ _SERVER [「REQUEST_URI」];'?到處都是我寫的,它只是文本而不是代碼 – Robdogga55
爲了讓您的代碼被評估爲PHP,它必須位於PHP標籤內:'' – mingos