![](/img/trans.png)
[英].htaccess remove php extension with pretty url of multiple parameter
[英].htaccess remove .php and add url parameter
我有這個 URL http://localhost/signUp.php?url={somevalue}
我想把它轉換成這樣:
http://localhost/signUp/{somevalue}
我如何才能對所有頁面執行此操作,而不僅僅是使用 .htaccess 的 signUp.php?
我已經找到了如何刪除 .php 但我不知道如何添加參數。
#Remove .php from url
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [NC,L]
除非您有其他要求,否則您不需要“刪除” .php
作為單獨的規則。 您有/signUp/{somevalue}
必須重寫為/signUp.php?url={somevalue}
。
這可以通過這樣的規則來實現:
Options -MultiViews
RewriteEngine On
RewriteRule ^(signUp)/([^/.])+$ $1.php?url=$2 [L]
如果您將somevalue
限制為不包含點或斜線,則無需檢查請求是否映射到文件。 這不太可能映射到目錄,除非/signUp
也作為目錄存在。
somevalue
必須包含 1 個或多個字符。 如果您有進一步的限制,那么這應該包含在正則表達式中。
更新:
謝謝,但這僅適用於注冊,我如何使其適用於所有頁面?
假設“所有頁面”由 4 個或更多字符的文檔根目錄中的單個路徑段組成,僅包含字符az
、 AZ
、 0-9
、 _
(下划線)和-
(連字符),然后將上述RewriteRule
更改為如下所示:
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^([\w-]{4,})/([^/.])+$ $1.php?url=$2 [L]
這會在重寫請求之前檢查相應的.php
文件是否存在,盡管如果您沒有其他指令,這可能不是絕對必要的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.