Mod-Rewrite

幫助使用 .htaccess 重寫 URL

  • April 15, 2018

我需要一個 .htaccess 來顯示這個 URL:

http://www.mysite.com/es/wp-content/plugins/mailpress/mp-includes/action.php?action=mail_link&add=123&lang=es

但實際上會提供此 URL:

http://www.mysite.com/wp-content/plugins/mailpress/mp-includes/action.php?action=mail_link&add=123&lang=es

請注意,action.php 可以接收 URL 中的其他 GET 參數。htaccess 也必須能夠轉發它們。這兩個 URL 之間的唯一區別是“假”根目錄,它將反映“lang”GET 參數。

是否有可能用 .htaccess 做這樣的事情(我很確定這是可能的)?任何人都有關於如何做到這一點的指示?

謝謝!

**Edit1:**我忘了說重寫規則應該只對“/wp-content/plugins/mailpress/mp-includes/”中的“action.php”有效。

**Edit2:**我目前在我的 .htaccess 中有這個:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

以下應該可以解決問題

RewriteEngine On
RewriteRule ^/es/(.+)$ /$1

關於您的問題的編輯,這是一個修改後的答案:

RewriteEngine On
RewriteCond %{REQUEST_URI} ^/es/wp-content/plugins/mailpress/mp-includes/action.php
RewriteRule ^/es/(.+)$ /$1

試試這個:

RewriteEngine on
RewriteRule ^/es/(.*) /$1

是來自 apache 的相應文件。

引用自:https://serverfault.com/questions/113416