我正在嘗試重定向我的內容,使用此 .htaccess 從所有檔案中洗掉 .php 擴展名:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [NC,L]
當我嘗試包含像這樣的任何其他重定向時,會給我一個 404 錯誤:
RewriteRule ^create/(.*)$ ./create.php?app=$1
我正在嘗試使用類似https://myurl.com/create/37744e17-98ff-58a9-8996-7cf746e508b9而不是https://myurl.com/create.php?id=37744e17-98ff-58a9-8996 -7cf746e508b9,但看起來像是我的 .htaccess 的開始,它給出了主要問題,有辦法解決這個問題嗎?
uj5u.com熱心網友回復:
你沒有說明你把這條規則放在哪里。它需要先走。順序很重要。
試試這樣:
# Disable MultiViews
Options -MultiViews
RewriteEngine On
RewriteRule ^create/([a-f0-9-] )$ create.php?id=$1 [L]
# General extensionless ".php" URLs
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule (.*) $1.php [L]
請注意,您id
在示例中使用了 URL 引數,但app
在您的規則中使用了?我已將其更改為id
.
根據您的示例 URL,id
URL 引數只能由字符 az、0-9 和連字符組成。
該RewriteBase
指令不是必需的。替換字串上的./
前綴不是必需的,應該洗掉。
.php
在附加檔案擴展名的原始規則中,在檢查請求是否映射到檔案(帶有擴展名)之前,無需檢查請求是否映射到目錄。您還可能會檢查與被重寫的檔案路徑不同的檔案路徑。
請注意,您需要確保禁用 MultiViews,否則create.php
會呼叫但沒有 URL 引數。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/517304.html
上一篇:正則運算式匹配包含&作為要匹配的文本的一部分的bibkey
下一篇:如何自定義剃刀視圖的日期輸入格式