2014-01-09 109 views
0

我正在使用PHP腳本來匹配請求鏈接到網站。我目前在'jcole/''jcole'上匹配。不過,我希望能夠匹配"jcole".php|.html|.htm),「jcole /」和「jcole」。我希望這場比賽不管文件擴展名是什麼,也不在乎名稱中是否有句號(例如,我希望能匹配「j.cole」)mod_rewrite .htaccess重寫匹配有或沒有文件擴展名

目前我已配置像這樣我的.htaccess

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*\.html)$ /loadlink.php=link=$1 [L,QSA] 
RewriteRule ^(.*)/?$ /loadlink.php?link=$1 [L,QSA] 

回答

0

您是更好做這一切在PHP中方式。正則表達式不能做你想做的所有事情,尤其是不得不處理名稱中的任意時間段。所以,你會只想規則:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+)/?$ /loadlink.php?link=$1 [L,QSA] 

注意,重寫條件僅適用於緊隨其後的RewriteRule

這會將所有內容發送到「鏈接」參數,只刪除任意的尾部斜線(如果存在)。這取決於loadlink.php腳本以擺脫名稱中的.php或隨機時間段。

相關問題