Dot-Htaccess
將所有 url 重定向到根目錄,除了 /wp-admin 和 wp-json
我嘗試將所有 url 重定向到根目錄,除了 wordpress 管理和 wordpress REST API。
我有這些規則
.htaccess
:<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !^/wp-admin.* RewriteCond %{REQUEST_URI} !^/wp-json.* RewriteRule ^.*$ / [L,R=301] </IfModule>
/wp-json
對於出現 404 錯誤的路由,它非常適合所有重定向。另外,我的 apache 日誌文件中有這些錯誤類型:
File does not exist: [...]/dmjob/wp-json, referer: http://dmjob.dev:8888/
你能幫我麼 ?非常感謝 !:)
您似乎已經破壞
/wp-admin
了 WordPress 前端控制器,因此對和的任何請求/wp-json
都不會被正確路由(因此您看到的是 404)。您應該保留 WP 指令的原樣,但在文件開頭實施額外的重定向。例如:
# Redirect all requests for non-existent files and those not for wp-admin or wp-json RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !^/wp-admin RewriteCond %{REQUEST_URI} !^/wp-json RewriteRule ^ / [R=301,L] <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>
/wp-admin
請注意,與您的原始程式碼一樣,僅在請求不存在的文件時才會重定向請求,即使該文件位於/wp-json
URL 空間之外。(大概這是必需的,以便 CSS、JS、圖像和任何其他靜態資源仍然可以正確提供。)