0
我想重寫任何網頁的URL包含-new.php
到/new
國防部重寫-new.php到/新
例如:
example.com/page-new.php
到
example.com/page/new
我能以下面的規則刪除結尾.php,但我不知道如何匹配-new
。
RewriteRule ^([^\.]+)$ $1.php [NC,L]
我想重寫任何網頁的URL包含-new.php
到/new
國防部重寫-new.php到/新
例如:
example.com/page-new.php
到
example.com/page/new
我能以下面的規則刪除結尾.php,但我不知道如何匹配-new
。
RewriteRule ^([^\.]+)$ $1.php [NC,L]
您的規則實際上會將.php添加到最後。
RewriteRule ^(.*)-new\.php$ $1/new [NC,L]
刪除-new.php它變爲/新
編輯:
一段時間的思考後,如果您希望用戶重定向,使用上面和將「R = 301」添加到括號中作爲第三個參數。
,或者,如果你確實有-new.php模式在/頁/新架構鏈接和文件,那麼你實際上想要remowe /新並添加-new.php。如果是這樣,那麼你問錯了問題。在這裏你去:
編輯2:
你也想重定向/頁到page.php文件。現在,您可以通過兩種方式做到這一點:
RewriteRule ^(.*)/new$ $1-new.php [NC,L]
RewriteRule ^(.*)$ $1.php [NC,L]
OR
RewriteRule ^(.*)/new$ $1-new [NC]
RewriteRule ^(.*)$ $1.php [NC,L]
第一個是兩個單獨的規則,首先爲/新的URL,然後其他。
二碼就像是「第一個變化/新 - 新的,然後應用下一條規則」如果你想排除只適用於網址沒有點什麼的,然後更換
(。*)與其他任何規則像例如([^ \。] *)
感謝您的答案。我原來的鏈接是'page.php'和'page-new.php'。我想在我的代碼中將它們鏈接爲'/ page'和'/ page/new'。你建議的第二條規則完全符合我的要求,但它不會將'page.php'重寫爲'/ page'(我的代碼是這樣做的)。我無法將我的規則與你的規則結合起來。 – user1355300 2014-12-03 12:53:44
立即檢查,我編輯了腳本。規則順序在這裏至關重要。如果你先應用.php,那麼規則檢查「/新」在最後不會觸發。 – Forien 2014-12-03 13:08:22