在其他页面地址上使用通配符而不是静态地址

时间:2013-02-15 18:32:29

标签: .htaccess mod-rewrite wildcard

我想使用通配符,因此允许使用任何页面地址。但我想使用一些静态页面地址,如用户登录,注册等等。我目前正在使用此方法,但正如我所料,它会尝试在每个网页地址上找到page.php

# KONTO
RewriteRule ^skapa-ett-konto$    account-create.php [L]
RewriteRule ^logga-ut$    account-logout.php [L]


# KONTO: Sidor som behöver laddas in genom jQuery/AJAX
RewriteRule ^slutfor-registreringen$    configurations/javascripts/ajax-form/account-create.php [L]
RewriteRule ^logga-in$    configurations/javascripts/ajax-form/account-login.php [L]



# --------------------------------------- #



# PROFIL
RewriteRule ^anvandare/([a-z0-9]+)$    profile.php?u=$1 [L]



# --------------------------------------- #



# ENSKILDA FILER
RewriteRule ^(.*)$    page.php?p=$1 [L]

如何使RewriteRule使用通配符到其他页面地址而不是静态页面地址?

提前致谢。

2 个答案:

答案 0 :(得分:1)

如果我理解正确,您希望从最后一条规则中排除某些现有网页,例如loginregistration。排除它们的方法是这样的:

# ENSKILDA FILER
# Add other pages to exclude here
RewriteCond %{REQUEST_URI}  !(page\.php|login|registration)  [NC]
RewriteRule ^(.*)$    page.php?p=$1 [L]

答案 1 :(得分:0)

如果所有其他地址都不是文件,则可以在page.php规则前加上

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* page.php?p=$0 [L]