我在下面有 htaccess 檔案
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html
Redirect /index.html /login.html
ErrorDocument 404 /404.html
ErrorDocument 403 /403.html
Options -Indexes
重定向 /index.html /login.html
當用戶進入索引頁面時,它應該重定向到 login.html 頁面。但它不起作用。
uj5u.com熱心網友回復:
Redirect /index.html /login.html我要求
/index
如果您提出要求,/index那么我不確定您為什么要/index.html在規則中進行檢查。但是,您應該使用 mod_rewrite 來構造此重定向,因為您已經在使用 mod_rewrite 進行內部重寫。
所以,改為這樣:
Options -Indexes
ErrorDocument 404 /404.html
ErrorDocument 403 /403.html
RewriteEngine On
RewriteBase /
# Redirect "/index" to "/login"
RewriteRule ^index$ /login [R=302,L]
# Append ".html" if target file exists
RewriteCond %{DOCUMENT_ROOT}/$1.html -f
RewriteRule (.*) $1.html [L]
我還“修復”了您的.html重寫,因為這可能會導致某些請求出現 500 錯誤,并且在檢查請求是否映射到檔案之前無需檢查請求是否映射到目錄。
請參閱 ServerFault 上的以下問題,該問題擴展了有關.html洗掉的此潛在問題。https://serverfault.com/questions/989333/using-apache-rewrite-rules-in-htaccess-to-remove-html-causing-a-500-error
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/364345.html
標籤:.htaccess
