亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Htaccess 第二個重寫規則不適用于生產

Htaccess 第二個重寫規則不適用于生產

PHP
慕的地8271018 2023-10-01 10:05:06
最奇怪的事情。兩個重寫規則都在我們的測試服務器上運行,但第二個規則locations在生產服務器上不起作用,并且由于某種原因/在末尾添加了一個locations/。兩臺服務器上的配置相同。我正在嘗試簡化 URL,而不重命名文件。這樣,如果用戶輸入,site.php/locations它將加載重定向頁面的內容,但保留簡化的 URL關于為什么locations重定向不起作用的任何想法?RewriteEngine onRewriteBase /// The next two are statements are just for context. They preceded the faq and locations forward RewriteCond %{REQUEST_URI} ^/index.php$RewriteRule (.*) / [R=301,L]// The two rewrites that I wantRewriteRule ^faq$ /faq-mailbox-account.php [NC,L]RewriteRule ^locations$ /choose-digital-mailbox-location.php [NC,L]
查看完整描述

2 回答

?
qq_花開花謝_0

TA貢獻1835條經驗 獲得超7個贊

...在生產中并由于某種原因/在末尾添加了一個locations/

locations如果作為文件系統上的物理目錄存在,就會發生這種情況。(或者存在并且響應被緩存。)

如果您請求/locations/locations作為物理目錄存在,則 mod_dir 將發出 301 外部重定向以附加尾部斜杠 - 通常,這是“修復”URL 所必需的。

無論您的規則是否匹配*1 , mod_dir 都會發生這種外部“重定向” ,因為它“只是”內部重寫而不是另一個重定向。(*1事實上,它確實匹配并且重寫確實發生,但它被 mod_dir 重定向有效地覆蓋。)

您可以在您的模式中附加一個可選的斜杠,例如。- 但如果您請求的末尾沒有斜杠,重定向仍然會首先發生。您需要請求一個已包含尾部斜杠的 URL。RewriteRule ^locations/?$/locations

您可以使用 來阻止 mod_dir 附加尾部斜杠DirectorySlash Off,但是,這可能會對您的系統產生其他影響。

另請注意,由于這是 301(永久)重定向,因此您的瀏覽器可能會永久緩存它。因此,如果該/locations目錄已在服務器上刪除,瀏覽器仍將重定向用戶,直到所有客戶端緩存也被清除。

兩臺服務器上的配置相同。

那么,兩臺服務器上都有(或曾經)有一個目錄嗎?/locations

如果兩臺服務器上的配置相同,那么您將得到相同的響應,因此一定存在一些差異。或者,存在客戶端緩存問題。

這樣如果用戶輸入site.php/locations

我認為您的意思是site.com/locations- 否則,您發布的指令沒有希望起作用,因為它們根本不匹配。


查看完整回答
反對 回復 2023-10-01
?
德瑪西亞99

TA貢獻1770條經驗 獲得超3個贊

該問題是由于 Prod 上的符號鏈接驅動器造成的



查看完整回答
反對 回復 2023-10-01
  • 2 回答
  • 0 關注
  • 122 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號