.htaccess:使用智能过滤器清理网址

时间:2014-02-10 03:43:02

标签: .htaccess mod-rewrite

从stackoverflow和其他网站花了2天混合和匹配规则,但没有运气,一部分可以工作,另一部分不会:(我想要像“智能”规则来过滤错误。

  • example.com/ 用户/ 或example.com/ 用户需要指向同一位置,例如example.com/profile.php?viewuser&who=$1

问题:在我当前的设置中,它只是循环到白色屏幕,当有一个尾随斜线,所以我决定“手动”删除尾部斜杠。顺便说一下,当view-sourced包含正确的html标记时产生的白色屏幕 - 它只是没有显示我不知道为什么。

  • example.com/ 用户 / notexistingurl 必须抛出错误,但会保留链接的url结构,并处于example.com/级别。

问题:矿井被打破了example.com/user/links.php而不是example.com/links.php

顺便说一下, 用户 是一个变量,所以它可以采用 simonsoft anotheruser 等。如果您发现我的网站没有任何问题,那么当我使用<base>标记时,它实际上已修复。删除那个标签就搞得一团糟了。我正在寻找某人对我的规则进行一些更正,可能不依赖rewritebasebase标签

这是我现有的.htaccess

Options -MultiViews
Options +FollowSymlinks
Options -Indexes

RewriteEngine On

RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule ^ - [L]

# remove the trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R,L]

# Some "static" links
RewriteRule about$ 22688.html [NC,R,L]
RewriteRule privacy$ 77.html [NC,R,L]
RewriteRule terms$ 867.html [NC,R,L]
RewriteRule login$ index.php [NC,L]
RewriteRule logout$ logout.php [NC,L]
RewriteRule register$ register.php?do=regterm [NC,L]
# Quick login url
RewriteRule ^([a-zA-Z0-9\-_.]+):([^/]*)$ login.php?do=login&loguid=$1&logpwd=$2 [NC,L]

# The vanity url
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z0-9\-_.]+)$ profile.php?do=viewuser&who=$1 [NC,QSA,L]
RewriteRule ^([a-z0-9\-_.]+)/friends$ profile.php?do=friends&who=$1 [NC,QSA,L]

帮助表示赞赏。谢谢!

0 个答案:

没有答案