簡體   English   中英

帶有許多變量的mod_rewrite URL

[英]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

請參閱我對這個問題的回答:

php,處理唯一的URL

這將為您提供:

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.

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