簡體   English   中英

需要幫助編寫URL重寫規則正則表達式PHP和htaccess

[英]Need help writing URL Rewrite rule Regular Expression for PHP and htaccess

我已經閱讀了很多關於如何使用重寫規則和正則表達式的網站,但它們都傾向於針對特定的例子而不會破壞語法的每一部分並實際幫助我學習這些概念以便我可以編寫我需要的代碼類型。

任何幫助深表感謝!

我有這樣的網址http://www.mysite.com/myphp.php?x=1A&y=2B&c=some1&d=some2

我想這樣重寫: http//www.mysite.com/some1/some2

這似乎很簡單,但正如我所提到的,我沒有遇到一個網站,以一種我可以弄清楚如何使這項工作的方式解釋這些概念。

在這個特定的例子中,Δx=總是相同的,而1A變化。 這同樣適用於php字符串的每個其他部分,但是,我假設重寫規則應該處理.php文件和我實際感興趣的變量之間的任意數量的字符。

再次感謝任何能夠幫助解釋這一點的人,或者提供有關重寫規則和正則表達式的高質量資源,以幫助我學習它。

像這樣的規則將起作用(測試):

RewriteRule ^([^/]+)/([^/]+) myphp.php?x=1A&y=2B&c=$1&d=$2 [L]

這有三個部分:

  1. RewriteRule指定這是一個重寫規則(與條件或其他指令相對)。 該命令是將第2部分重寫為第3部分。
  2. 此部分是正則表達式,僅當URL與此正則表達式匹配時才會運行規則。 在這種情況下,我們說 - 查找字符串的開頭,然后是一堆非斜杠字符,然后是斜杠,然后是另一堆非斜杠字符。 括號表示括號內的部分將被存儲以供將來參考。
  3. 最后,這部分說明用這種格式重寫給定的URL。 $ 1和$ 2指的是捕獲和存儲的部分(反向引用)

至於mod_rewrite上的高質量資源,過去我通過搜索“mod_rewrite tutorial”找到了一些(我覺得對初學者來說是個好的)。 它們大部分都是這樣的,所以如果你有什么具體的東西你不理解,那么在前進之前就把它弄清楚。 我不確定如何解釋語法。

再一次,正則表達式是一個不同的東西,包括初學者在內的許多資源。 一旦掌握了正則表達式的基本內容,就可以使用Python重新頁面作為參考。

是什么(未經過測試)添加到.htaccess?

RewriteEngine on
RewriteRule ^/([0-9a-z]+)/([0-9a-z]+)/$ /?c=$1&d=$2 [L]

假設x和y不感興趣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM