簡體   English   中英

網址重寫-另一條規則

[英]URL rewrite - one more rule

我正在對我的網站進行URL重寫。 到目前為止,效果很好。 我得到以下代碼:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /calendster/

RewriteRule ^admin2($|/) - [L]
RewriteRule ^test.php($|/) - [L]

RewriteRule ^([^/]+)/([a-z]+)/(\d+)/?$ index.php?site=$1&cmd=$2&id=$3 [L,NC,QSA]
RewriteRule ^([^/]+)/([a-z]+)/?$ index.php?site=$1&cmd=$2 [L,NC,QSA]
RewriteRule ^([^/]+)/(\d+)/?$ index.php?site=$1&id=$2 [L,QSA]
RewriteRule ^([^/]+)/?$ index.php?site=$1 [L,QSA]

使用上面顯示的代碼,我有了這些URL-re

test.php?site=hi  --> www.domain.com/hi
test.php?site=hi&id=1  --> www.domain.com/hi/1
test.php?site=hi&cmd=test  --> www.domain.com/hi/test
test.php?site=hi&cmd=test&id=1  --> www.domain.com/hi/test/1

我還要一條規則。 我想要

test.php?site=users&ustr=haris-skrijelj  --> www.domain.com/users/haris-skrijelj

我該如何進行這項工作?

我想這會工作:

RewriteRule ^([^/]+)/([a-z-]+)/?$ index.php?site=$1&ustr=$2 [L,NC,QSA]

但是,如果在用戶上也可以讓用戶沒有破折號,則您必須使用以下方法使其更加具體:

RewriteRule ^(users)/([a-z-]+)/?$ index.php?site=$1&ustr=$2 [L,NC,QSA]

否則它將與您的其他規則沖突。

以及完整的規則:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /calendster/

RewriteRule ^admin2($|/) - [L]
RewriteRule ^test.php($|/) - [L]

RewriteRule ^([^/]+)/([a-z]+)/(\d+)/?$ index.php?site=$1&cmd=$2&id=$3 [L,NC,QSA]
RewriteRule ^([^/]+)/([a-z-]+)/?$ index.php?site=$1&ustr=$2 [L,NC,QSA]
RewriteRule ^([^/]+)/([a-z]+)/?$ index.php?site=$1&cmd=$2 [L,NC,QSA]
RewriteRule ^([^/]+)/(\d+)/?$ index.php?site=$1&id=$2 [L,QSA]
RewriteRule ^([^/]+)/?$ index.php?site=$1 [L,QSA]
RewriteRule ^([^/]+)/users/(\w+)$ test.php?site=users&ustr=$1

暫無
暫無

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

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