2012-08-14 79 views
0
Options +FollowSymLinks 
RewriteEngine on 
RewriteRule (.*)\.html$ fetch.php?id=$1 

我有這個在我的htaccess的文件,它工作正常,但我想知道是否有一種方法可以改寫這個,這樣,而不是僅僅拉動ID#我可以拉的類別和標題。相反或將我需要做這樣的事情修訂我重新編寫代碼

RewriteRule (.*)/(.*)/(.*)\.html$ fetch.php?id=$1&category=$2&title=$3 

此外,如果這是我需要做的,我將如何去改變我的冠軍已經沒有空間,只有插圖中他們破折號?我聽說網址不喜歡空格。我已經讀過其他地方他們使用PHP代碼,其中空格被轉換成「 - 」或「_」被讀入頁面,但恢復到在SQL中讀取。讓我知道你是否需要更多地瞭解我的情況。謝謝。

更新!

RewriteRule (.*)/(.*)/(.*)\.html$ fetch.php?id=$1&category=$2&title=$3 

這是htaccess的規則

<a href="<?php echo $row_getDisplay['id']; ?>/<?php echo $row_getDisplay['category']; ?>/<?php echo urlencode($row_getDisplay['title']); ?>"> 

這是我的鏈接..這個方法我把它拉了ID /分類/不帶空格的標題,但它沒有CSS或圖像顯示。我拉ID,因爲這是我的fetch.php如何拉它,我不知道如何設置它,所以它按類別和標題拉。

回答

0

我建議不要這樣做,因爲這是不是很可擴展的,你可能想嘗試以下操作:

添加以下你的htaccess:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule .* fetch.php/%{REQUEST_URI} [QSA,L] 

這將會把你的整個網址path_info環境變量,您可以在後端代碼中使用它。

RewriteCond部件確保只有在請求的文件不存在時纔會重寫url。

+0

這是行不通的,我得到500內部服務器錯誤 – user1557936 2012-08-14 13:28:04

+0

如果你把一個'中止(「測試」)'上,你仍然可以得到一個'500'錯誤fetch.php中的第一行? – 2012-08-14 13:49:36

+0

當我添加中止,所有我的CSS和圖片不起作用。 – user1557936 2012-08-14 15:24:38

0

這種方法我得到它拉起ID /類別/標題沒有空格,但它沒有CSS或圖像顯示。我拉ID,因爲這是我的fetch.php如何拉它,我不知道如何設置它,所以它按類別和標題拉。

這可能是因爲所有的鏈接都是相對的,基本URI已經從/something.html改變(即/)到/something/foo/bar.html(即/something/foo/),所以現在所有的相對鏈接被破壞。嘗試添加給你的網頁的標題:

<base href="/"> 
+0

嗨,當你的意思是頭,你的意思是在頭標籤之間或HTML格式在doctype之前的第一行? – user1557936 2012-08-14 21:55:14

+0

@ user1557936是,在''標籤之間。 http://www.w3schools.com/tags/tag_base.asp – 2012-08-14 22:36:48

+0

嗨,我已經添加到標籤,這是我得到的警告'警告:在/ home/content/02/9583902 /第19行的html/fetch.php'我會再次嘗試線程上的其他答案 – user1557936 2012-08-15 01:11:06