2013-01-31 52 views
-3

我是這個路由和mod-reqrite等的完整初學者。東東。 我跟着關於URL路由的教程在這裏:http://wettone.com/code/clean-urls,但無法讓它工作。請幫我使用URL路由

我只想路由所有和任何類型的URL的如

http://wettone.com/weblog/2000/01/01/example 
http://wettone.com/weblog/2000/01/01 
http://wettone.com/weblog/2000/01 
http://wettone.com/weblog/2000 

我的index.php腳本在博客文件夾中的文檔根與可用目錄路徑:

http://wettone.com/weblog/index.php?y=2000&m=01&d=01&n=example 
http://wettone.com/weblog/index.php?y=2000&m=01&d=01 
http://wettone.com/weblog/index.php?y=2000&m=01 
http://wettone.com/weblog/index.php?y=2000 

如何我可以這樣做嗎? BTW,我寧願保持它的簡單,沒有使用任何框架

Thanx提前...

編輯:能告訴我爲什麼投反對票?我做錯了什麼?我不能在這裏問這種類型的問題嗎?

+0

沒有人可以猜測爲什麼你會得到一個內部服務器錯誤。 Web服務器日誌會告訴。另外這個超級簡單,請閱讀更多的教程;考慮寫一個毫無意義的標題來找到一些。 – mario

+2

查看[ToroPHP](https://github.com/anandkunal/ToroPHP)。本週我偶然發現的超小型「框架」。基本上只會給你你所追求的,而不是更多:路由/清潔網址:) – Svish

+0

ToroPHP就是我想要的。謝謝你,sooo :-) –

回答

0

使用的htaccess

Options +FollowSymLinks 
RewriteEngine On 
RewriteBase /weblog/ 


RewriteRule (.*)/(.*)/(.*)/(.*)$ index.php?y=$1&m=$2&d=$3&n=$4 
+0

它的工作。給內部服務器錯誤。我的index.php是在weblog文件夾中,我已經把htaccess放在文檔根目錄下。這是對的嗎 ? –

+0

@NitinBansal:是 –

+0

@NitinBansal:編輯代碼請現在檢查 –

1

所以基本上你想要的一切映射到的index.php? 如果是的話,這裏有段從symfony1的htaccess採取

# we check if the .html version is here (caching) 
RewriteRule ^$ index.html [QSA] 
RewriteRule ^([^.]+)$ $1.html [QSA] 
RewriteCond %{REQUEST_FILENAME} !-f 

# no, so we redirect to our front web controller 
RewriteRule ^(.*)$ index.php [QSA,L] 

在PHP然後,必須使用$ _ SERVER [「REQUEST_URI」],如果我沒有記錯,解析URI,並決定顯示什麼

最好是隻爲這份工作使用symfony2組件http://symfony.com/doc/current/components/routing/introduction.html :)

+0

Thnx ...我試過了,但它給我「內部服務器錯誤」錯誤。怎麼了?順便說一句,我已經把這個htaccess放在我的文檔根目錄下,並且index.php位於weblog文件夾中。這是對的嗎? –

+0

你有mod_rewrite打開,並且在你重新啓動apache之後? –

+0

好的,mod_rewrite被評論了,但是我開啓了它並重啓了apache。讓我更多的permuatations /組合 –