Htaccess多重定向一页

时间:2014-06-19 20:17:49

标签: php .htaccess mod-rewrite redirect

我有一个问题: 我为我未来的网站写了一个空白页面,我有一个问题。

这些网址有一个页面(account.php):

http://site.domain/en/account/ - 能够访问但如果没有/,我无法访问它 http://site.domain/en/account/create/ - 能够访问,但我遇到同样的问题 http://site.domain/en/account/create/verify/ - 无法使用当前的htaccess访问

我的htaccess看起来像这样:

RewriteEngine On
AddDefaultCharset UTF-8
RewriteCond %{REQUEST_URI} ^(.*)//(.*)$
RewriteRule . %1/%2 [R=301,L]
RewriteCond %{HTTP:Accept-Language} ^([a-z]{2})- [NC]
## Rewrite Rules
RewriteRule ^account/?$ /%1/%{REQUEST_URI} [L,NC,R]
RewriteRule ^([a-z]{2})/(account)/([^/]+)/([^/]+)?$ /$2.php?language=$1&type=$3 [L,NC,QSA]

所以我试图做的是通过htaccess使所有重定向都可以访问。

例如,对于上面提到的htaccess中的数据,我可以访问帐户页面并创建页面,但不能验证页面。如果我改为:

RewriteRule ^([a-z]{2})/(account)/([^/]+)/([^/]+)/([^/]+)?$ /$2.php?language=$1&type=$3&subtype=$4 

我可以访问创建和验证页面,但不能访问帐户页面本身。

所以我想要实现的是,能够通过一个htaccess规则访问所有这3个页面,所以基本上只需用htaccess重定向用户并且没有php的帮助,即使account.php确定哪个请求已经制作并提供了正确的请求页面

有没有关于htaccess和相关问题的好书,因为我不知道它是什么以及如何使用它

1 个答案:

答案 0 :(得分:1)

这样做:

AddDefaultCharset UTF-8

RewriteEngine On
RewriteCond %{REQUEST_URI} ^(.*)//(.*)$
RewriteRule . %1/%2 [R=301,L]

RewriteCond %{HTTP:Accept-Language} ^([a-z]{2})- [NC]
## Rewrite Rules
RewriteRule ^account/?$ /%1%{REQUEST_URI} [L,NC,R]

RewriteRule ^([a-z]{2})/(account)(?:/([^/]+)(?:/([^/]+))?)?/?$ /$2.php?language=$1&type=$3 [L,NC,QSA]