[英]mod_rewrite URL with many variables
我是mod重寫的新手,但我嘗試對該URL進行mod重寫沒有成功。
網址結構如下:
http://mysite.com/script.php?id=15751890&xp=862297&wm=1721&ls=2725&he=63530&ks=23050&eath=53588&tk=10&ck=john&rk=37
我想對其進行mod-rewrite:
http://mysite.com/script.php?id=15751890
要么 :
http://mysite.com/15751890/862297/1721/2725/63530/23050/53588/10/john/37
我遵循了這個http://wettone.com/code/clean-urls和這個http://net.tutsplus.com/tutorials/other/a-deeper-look-at-mod_rewrite-for-apache/
但是寫不出來
在htaccess文件中輸入什么
好吧,如果您真的想編寫這樣的重寫,您應該可以在htaccess文件中使用它。 可能有更好的方法來處理URL,但是,我正在為您提供您所要求的。
注意:我不使用您提供的URL。
RewriteEngine on
RewriteRule (.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*) script.php?id=$1&xp=$2&wm=$3&ls=$4&he=$5&ks=$6&eath=$7&tk=$8&ck=$9&rk=$10&%{QUERY_STRING}$ [L]
因此,您可以在重寫時使用這種類型的URL。
http://mysite.com/15751890/862297/1721/2725/63530/23050/53588/10/john/37
請參閱我對這個問題的回答:
這將為您提供:
http://mysite.com/15751890/862297/1721/2725/63530/23050/53588/10/john/37
與其嘗試找出所有可能的重寫組合,不如學習MVC路由方法。
這樣,您可以將所有內容路由到PHP路由器,然后根據需要將請求定向到控制器等。
HTACCESS重寫所有內容:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]
在您的PHP腳本中,您可以使用: $_SERVER['REQUEST_URI']
獲取請求的URI。
示例: http : //example.com/foo/bar/95將重寫為index.php,然后$_SERVER['REQUEST_URI']
將為/foo/bar/95
然后進行相應的路由。
通常,您的URL結構如下所示:
http://example.com/controller/action/param_1/param_2/param_3/etc
而“動作”只是控制器方法的別稱。 如何編寫代碼取決於您。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.