我有一个问题: 我为我未来的网站写了一个空白页面,我有一个问题。
这些网址有一个页面(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和相关问题的好书,因为我不知道它是什么以及如何使用它
答案 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]