2010-07-29 151 views
-1

我想重寫url並失敗。我可以知道什麼是錯的嗎?有人請賜教嗎?我將代碼放在.htaccess中。我也啓用了rewrite_module。Apache重寫url

RewriteEngine On 
RewriteRule /place/^([a-zA-Z0-9])$ /placelink.php?lid=$1 

例如:domain.com/place/xyz - > domain.com/placelink.php?id=xyz

更新

我剛纔發現我的語法現在是正確的。但它不是mod_rewrite不工作。 phpinfo顯示mod_rewrite模塊可用。

更新2

RewriteEngine On 
RewriteRule ^/?test\.html$ test.php [L] 

回答

1

機會是你想要這個...

RewriteEngine On 
RewriteRule ^place/([a-zA-Z0-9-]+)/?$ /placelink.php?lid=$1 

這將需要對請求..

domain.com/place/the-moon 

...,將成爲了......

domain.com/placelink.php?lid=the-moon 
+0

嗨cags,請閱讀我的更新。謝謝。 – davidlee 2010-07-30 05:57:24

+0

@benmsia你的更新沒有用,因爲它沒有顯示你現在正在做什麼。 – hobbs 2010-07-30 05:58:35

+0

@hobbs最初,我認爲這是由於語法錯誤,無法獲得URL重寫。但是現在我意識到即使是簡單的重寫也是我的服務器無法執行的。即使在設置啓用mod_rewrite之後。我可以知道如何解決這個問題嗎?如何啓用它?有沒有我留下的步驟,只需在httpd中取消註釋重寫模塊?感謝您的回覆,並問我是否我的評論不清楚。謝謝。 – davidlee 2010-07-30 06:13:26

0

^裝置「的字符串的開始。 /path/是一個文字。所以你要求一個字符串,其中有/path/,之後字符串開始。這在邏輯上是不可能的。有關正則表達式的更多信息,請參閱http://regularexpressions.info

+0

我已經取消了^和$。但不能工作。我更新了我的問題。 – davidlee 2010-07-29 20:06:35

+0

嗨wrikken,請閱讀我的更新。謝謝 – davidlee 2010-07-30 05:56:59

+0

@benmsia:完全有可能你不允許在.htaccess文件中添加重寫文件。 Apache中設置的AllowOverride指令是什麼? – Wrikken 2010-08-02 23:00:25