我嘗試自己這樣做,但我是正規表示式的新手。
我有這個網址:
http://[DOMAIN]/[category]/27466-some-article-is-here
應該要重定向到這個 URL:
http://[DOMAIN]/[category]/some-article-is-here
我只是想從 URL 中刪除 ID。該類別可以是我想保留的任何內容。
我該如何實現這個目標?
更新:我將 @taduuda 的重定向調整為:
RewriteRule ^(.*)\/[\d]*\-(.*)$ $1/$
這對於測試工具來說看起來不錯,但是在我的 WordPress 網站上仍然不起作用。
我的.htaccess:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# BEGIN - Custom Redirects
RedirectMatch 301 /heute(.*) /$1
RewriteRule ^(.*)\/[\d]*\-(.*)$ $1/$2
# END - Custom Redirects
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
答案1
不確定這是否適用於您擁有的每個 URL,但這將為您提供一個工作基礎。請注意,這會專門檢查 5 位數的 ID。如果您希望更靈活,只需更改{5}
為不同的限定符,例如*
.另請注意,這可能與您不想重定向的 URL 相符。
* 量詞 - 零次和無限次之間的匹配,盡可能多的次數,根據需要回饋(貪婪)
你的規則:
RewriteEngine on
RedirectMatch 301 ^(.*)\/[\d]{5}\-(.*)$ $1/$2
或更精確的變體以避免不必要的重定向:
RewriteEngine on
RedirectMatch 301 ^(.*example\.com\/.+)(?:\/[\d]{5})\-(.*)$ $1/$2
既然您提到您是正規表示式的新手,那麼這裡有一些可以幫助您入門的工具:
線上正規表示式建置/測試工具:正規表示式101.com
線上.htaccess重寫測試工具:htaccess.madewithlove.be