2012-01-30 72 views
1

我是新來的URL重寫規則,並希望重寫一些URL。下面是我的問題:URL在PHP上重寫與查詢字符串到搜索引擎友好

我已經創建了兩個規則(可以正常工作),它將隱藏URL中的* .php擴展名。一個是將「/abc.php」重定向到「/ abc」。另一個規則是將/ abc重寫爲/abc.php。這兩個規則工作正常,我使用以下模式。

  • ^([^/]+)/?\.php$ - >重定向到 - >{R:1}
  • ^([^/]+)/?$ - >重寫爲 - >{R:1}.php

現在我有一個問題。我有一個頁面,如www.example.com/member?getuser=chris(請注意,因爲以前的規則,它不是member.php?getuser=chrisyeung)。我想要的URL改寫爲:

www.example.com/member/chris 

我試圖按照一些教程和使用以下模式:

`^/member/(_[0-0a-z-]+)` --> Rewrites to --> `^member?getuser={R:1}`. 

...但它不工作。

我錯過了什麼?

screenshot of edit outbound rule screenshot 2 of edit outbound rule

回答

0

我不unterstand你的前兩個規則。將*.php重寫爲***.php - 聽起來像是一個循環。我假設你的文件被命名爲.php,並且你希望你的訪問者使用這個文件擴展名的URL。然後將*重寫爲*.php

爲了您的會員頁面,使用方法:

^/member/([0-9a-zA-Z-_]+) member.php?getuser={R:1} [QSA] 

我改變了[]內的有效字符列表,我直接打電話member.php - 無需發出另一條規則。 QSA用於傳遞更多的URL參數。

+0

謝謝您發佈的答案。要回答你的答案的第一部分,我使用了兩條規則,因爲一條用於重寫,另一條用於重定向。我剛剛使用URL重定向模塊中的「UserFriendlyURL工具」,它出現了兩條規則。 – 2012-01-30 10:52:55

+0

沒有這兩個規則在一起。客戶可以使用以下兩個地址訪問我的網站: www.example.com/abc.php和www.example.com/abc。我只希望人們看到www.example.com/abc,即使他們最終輸入.php。 – 2012-01-30 11:01:17

+0

對於第二部分,我仍然無法重寫URL。我已經在我的問題上傳了一張圖片,我應該輸入什麼內容? – 2012-01-30 11:02:40

相關問題