2013-03-22 109 views
0

我有一個網站,我的工作就和剛纔的表現國防部重寫這樣的URL cuadmemo.com/posts.php?title=abctitle寫入cuadmemo.com/abctitle.htmlMod用重寫?在URL

我的問題當你有一個標題?在其中標記。您點擊鏈接

http://www.cuadmemo.com/Are You Doing All You Can to Protect Your Members From Wire Fraud?.html 

它顯示爲未找到?我知道那個?是導致問題的原因。我寫在PHP中,並有這種格式的鏈接(從數據庫中提取)

下面是我用來編寫語句的php代碼。

echo "<a name='description' href='http://www.cuadmemo.com/{$row_oneBack['title']}.html'>". $row_oneBack['title'] . '</a>'; 

我使用的重寫代碼

RewriteRule (.*)\.html /posts.php?title=$1 

任何建議,將不勝感激。提前致謝。

回答

0

這不是一個非常安全的網址。你應該做這樣的事情,而不是; Are_You_Doing_All_You_Can_to_Protect_Your_Members_From_Wire_Fraud.html

+0

權本來我它是從數據庫中的id中拉出來的,這個數據庫寫得像cuadmemo.com/posts.php?id=123,但希望它更像是一個WordPress的博客,它會重寫它來顯示url中的標題。不知道如何走這條路。因此,使用cuadmemo.com/posts.php?title=whatevertitlenameis – StevoBot 2013-03-22 19:50:59

+0

@StevoBot這是一個好主意,但是你應該做這樣的事情來保持ID在重寫; example.com/post/123/TITLEWHATEVER.html這樣你可以使用IDNumber後的任何字符 – 2013-03-22 19:52:50

0

因爲你有一個問號? Apache是​​誤以爲你想擁有的東西像$_GET['.html']因此,您的網址被切斷。

看來你的CMS/php正在尋找$_GET['title']。如果你想有questionmarks,你應該有它的看待和分析$_SERVER['REQUEST_URI']

你可以採取這樣的:

# infile .htaccess 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 

,然後尋找你的查詢,像這樣:

http://example.com/test/page?is=ok&has=get-params 

// infile: index.php 
// var_dump($_SERVER['REQUEST_URI']); 
// you will get string '/test/page?is=ok&has=get-params' (length=41) 
+0

因此,當我從數據庫中提取信息時,我應該通過$ _SERVER ['REQUEST_URI' ]? – StevoBot 2013-03-25 13:20:54

+0

如果你選擇保持鏈接創建的方式,那麼使用上面的代碼,你將在'$ title = $ _SERVER ['REQUEST_URI'];'' – 2013-03-25 14:35:48