2
我遷移我的網站到一個新的平臺&我想舊網址這樣的映射:
anecdotage.com/index.php?aid=13337
這樣:
anecdotage.com/文章/ 13336/
[請注意在ID中的偏移量]將URL映射與國防部重寫
我可以在apache的mod_rewrite中執行此操作。任何幫助感謝!
我遷移我的網站到一個新的平臺&我想舊網址這樣的映射:
anecdotage.com/index.php?aid=13337
這樣:
anecdotage.com/文章/ 13336/
[請注意在ID中的偏移量]將URL映射與國防部重寫
我可以在apache的mod_rewrite中執行此操作。任何幫助感謝!
您不能單獨做任何數學與mod_rewrite的,這意味着你可以對陣13337
,做一些事情,以它來將其更改爲13336
不採用某種'RewriteMap 1至外部減去一個數,但是這需要訪問任一服務器或vhost配置。
因此,在虛擬主機/服務器配置,你必須設置地圖:
RewriteMap subtract prg:/path/to/script/that/subtracts-by-one.sh
這subtracts-by-one.sh
腳本需要一個數字作爲輸入,從中減去1,然後打印出結果。然後用它在重寫規則:
# to make sure we aren't clobbering legit requests
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING} aid=([0-9]+)
RewriteRule ^/?index.php$ /articles/${subtract:%1}/? [L]
如果您沒有訪問重寫地圖,那麼你需要做硬盤的方式,並列舉所有的重寫:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING} aid=12345
RewriteRule ^/?index.php$ /articles/12344/? [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING} aid=13337
RewriteRule ^/?index.php$ /articles/13336/? [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING} aid=19911
RewriteRule ^/?index.php$ /articles/19910/? [L]
等