2014-07-02 140 views
2

首先這已經工作了,但我想限制一些可變長度。 我的代碼的任何其他改善也歡迎htaccess限制最大長度變量

RewriteEngine on 
Options +FollowSymlinks 
RewriteBase/

RewriteRule pict/([a-z]+)/([0-9]+) retpic.php?type=$1&id=$2 [L] 

RewriteRule pc/(.*) pcs/$1 [L] 

RewriteRule ^([a-z]+)/([0-9]+) index.php?ln=$1&id=$2 [L] 

RewriteCond %{REQUEST_URI} !=/index.php 
RewriteCond %{REQUEST_URI} !=/retpic.php 
RewriteCond %{REQUEST_URI} !^/pcs/.*$ 
RewriteCond %{REMOTE_HOST} !^11\.11\.11\.11 

RewriteRule . index.php [L] 

retpic.php分配我的照片,其中: ([a-z]+)是在尺寸和圖像 ([0-9]+)的類型2letter指標的6位數的ID我想要的圖片

是否可以將這些限制爲最大2和6個字符長?

同樣也適用於我的索引: ([a-z]+)一個2letter語言指示劑(恩,德,禮,NL) ([0-9]+)來顯示什麼頁面6位數編號。

的電腦文件夾中包含我的CSS和JS文件在多級文件夾結構 ,應該是可以自由進出

最後一部分我使用的每一個錯誤的URL重定向到我的指數除了我嗷嗷IP地址 所以我可以訪問我的CMS

回答

0

您可以使用正則表達式範圍內構建{...}強制長度:

RewriteEngine on 
Options +FollowSymlinks 
RewriteBase/

RewriteRule pict/([a-z]{2})/([0-9]{6})/?$ retpic.php?type=$1&id=$2 [L,QSA] 

RewriteRule pc/(.*)$ pcs/$1 [L] 

RewriteRule ^([a-z]{2})/([0-9]{6})/?$ index.php?ln=$1&id=$2 [L,QSA] 

RewriteCond %{REQUEST_URI} !=/index.php 
RewriteCond %{REQUEST_URI} !=/retpic.php 
RewriteCond %{REQUEST_URI} !^/pcs/.*$ 
RewriteCond %{REMOTE_HOST} !^11\.11\.11\.11 
RewriteRule . index.php [L] 
+0

偉大的作品就像一個魅力。 只爲什麼你加$到pc /(.*)? 以及爲什麼我使用QSA的印象是這個主要用於測試? – MaMiFreak

+0

不客氣。 'QSA'(查詢字符串追加)標誌保留現有的查詢參數,同時添加一個新的。 – anubhava