2009-05-25 70 views
1

呃.. mod_rewrite讓我感到很蠢。我還沒有把我的大腦包裹起來。 :/幫助mod_rewrite動態url規則

我有這個網址:

http://example.com/a/name/

...,我想在這裏指出:

http://example.com/a/index.php?id=name

...其中name是什麼,是獲取傳遞到index.php作爲id的說法。

什麼我已經試過在結果無論是404還是500 .. :(

回答

1

開始你了:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !index.php 
RewriteRule ^/?a/([^/]+)/?$ /a/index.php?id=$1 [QSA,L] 

如果一個重寫教程不會爲你工作,try another

編輯:排除index.php按濃湯的建議

+0

結果在500錯誤這一點:請求超過了10個內部重定向的上限,由於可能的配置錯誤。 – Ian 2009-05-25 20:44:30

1

也許沿

東西線

 
RewriteEngine on 
RewriteBase /a/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)/?$ index.php?id=$1 [L,QSA] 

會做伎倆。

2

如果您希望末尾的斜線是可選的,您必須排除要將該請求重寫的文件。否則,你將有一個很好的無限遞歸。

RewriteEngine on 
RewriteCond %{REQUEST_URI} !^/a/index\.php$ 
RewriteRule ^/a/([^/]+)/?$ /a/index.php?id=$1 [L] 

這裏與/a/…開頭的請求,但它不是/a/index.php改寫爲/a/index.php

但如果最後的斜線是強制性的,沒有必要排除目標文件:

RewriteEngine on 
RewriteRule ^/a/([^/]+)/$ /a/index.php?id=$1 [L]