簡體   English   中英

PHP的高級Htaccess重寫規則

[英]Advanced Htaccess Rewrite Rule For PHP

我目前有以下代碼重寫搜索引擎友好的URL到PHP可以處理的東西,但有一些問題。

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*)/(.*) index.php?$1/$2

這會將domain.com/cat/mens/size/large/重寫為domain.com/index.php?cat/mens/size/large/


如果我可以使用不同數量的子目錄(例如對PHP代碼更友好的子目錄)將其重寫為類似的東西,那將是理想的:

理想的重寫: domain.com/index.php?cat=mens&size=large

另一個例子: domain.com/page/value/subpage/subvalue/something/true/

應重寫為: domain.com/index.php?page=value&subpage=subvalue&something=true


還有一種方法可以重寫: domain.com/search/?q=blah+blah

致: domain.com/index.php?search&q=blah+blah

嘗試這個:

RewriteRule /page/(.*)/subpage/(.*)/something/(.*) index.php?page=$1&subpage=$2&something=$3

當url中的變量數量未預定義時,最好將其作為字符串傳遞給php,並讓它處理它(explode,implode,foreach,build a array)。

RewriteRule /search/?q=(.*) index.php?search&q=$1

至於你在下面要求的內容:

RewriteRule /cat/(.*)/size/(.*)/?q=(.*)&abc=(.*) index.php?search&cat=$1&size=$2&q=$3&abc=$4

基本上,RewriteRule的第一部分是給定的url,第二部分是轉到腳本的部分。 變量中第一個中的每個(somethingInHere),你可以在第二個變量中使用,如$ 1,$ 2,$ 3和$ 4。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM