我正在嘗試重定向不以特定模式開頭的任何請求。
例如
mydomain.com/測驗/一個/一
mydomain.com/測驗/一個/ B
和
mydomain.com/用戶/名稱/a
mydomain.com/用戶/名稱/b
因此,任何與mydomain.com/test/one或mydomain.com/user/name不匹配的請求都 將重定向到某個頁面或網址。
到目前為止,我可以匹配以下
RewriteCond %{REQUEST_URI} ^(/test/one|/user/name) [NC]
RewriteRule .* - [F]
所以任何以 /test/one 或 /user/name 開頭的 url 都可以正確重定向。
但是當我試圖用 ! ,它重定向每個請求!
RewriteCond %{REQUEST_URI} !^(/test/one|/user/name) [NC]
RewriteRule .* - [F]
但我希望除 REQUEST_URI 之外的所有請求都具有類似的模式
^(/test/one|/user/name)
uj5u.com熱心網友回復:
使用您顯示的示例,請嘗試遵循 htaccess 規則檔案。在測驗您的 URL 之前,請確保清除瀏覽器快取。
THE_REQUEST在這里為 apache使用變數來檢查條件。
RewriteEngine ON
RewriteCond %{THE_REQUEST} !\s/(?:test/one/|user/name/)\S \s [NC]
RewriteRule ^ - [F,L]
uj5u.com熱心網友回復:
不需要 a RewriteCond,只需將模式提供給RewriteRule,例如
RewriteRule ^test/one - [F]
RewriteRule ^user/name - [F]
這將禁止以/test/one或開頭的請求/user/name。
要將所有其他請求重寫到某個網頁,請附加另一個 RewriteRule
RewriteRule ^ /some/web/page.html [L]
要重定向客戶端而不是重寫,請將標志R|redirect添加到規則
RewriteRule ^ /some/web/page.html [R,L]
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/391051.html
