呃.. mod_rewrite讓我感到很蠢。我還沒有把我的大腦包裹起來。 :/幫助mod_rewrite動態url規則
我有這個網址:
http://example.com/a/name/
...,我想在這裏指出:
http://example.com/a/index.php?id=name
...其中name
是什麼,是獲取傳遞到index.php
作爲id
的說法。
什麼我已經試過在結果無論是404還是500 .. :(
呃.. mod_rewrite讓我感到很蠢。我還沒有把我的大腦包裹起來。 :/幫助mod_rewrite動態url規則
我有這個網址:
http://example.com/a/name/
...,我想在這裏指出:
http://example.com/a/index.php?id=name
...其中name
是什麼,是獲取傳遞到index.php
作爲id
的說法。
什麼我已經試過在結果無論是404還是500 .. :(
開始你了:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !index.php
RewriteRule ^/?a/([^/]+)/?$ /a/index.php?id=$1 [QSA,L]
如果一個重寫教程不會爲你工作,try another。
編輯:排除index.php
按濃湯的建議
也許沿
東西線
RewriteEngine on
RewriteBase /a/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/?$ index.php?id=$1 [L,QSA]
會做伎倆。
我建議你先看看這個網址:
http://www.dracos.co.uk/code/apache-rewrite-problem/
所提出的解決方案,將工作,但也有一些需要注意的URL解釋,主要是有關?和#在URL中。
如果您希望末尾的斜線是可選的,您必須排除要將該請求重寫的文件。否則,你將有一個很好的無限遞歸。
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]
結果在500錯誤這一點:請求超過了10個內部重定向的上限,由於可能的配置錯誤。 – Ian 2009-05-25 20:44:30