我有学生,老师和管理员部分的软件。我想让教师选择他们的网址,例如http://mydomain.com/teacher1
,http://mydomain.com/teacher2
等。
我怎样才能使用这个mod_rewrite呢?这部分正在运作:
RewriteEngine On
RewriteRule username teacher/
但不是当我在教师目录中有一些链接时,例如teacher/training.php
中的index.php
浏览器打开teacher/dir
页面而不是training.php
。
答案 0 :(得分:0)
mod_rewrite读取所有路径并将其全部修改。格式为:“RewriteRule 模式替换”(Apache Docs)
“Pattern”可以是子字符串,匹配该子字符串的任何内容都将被重写,但“replacement”是完整路径。
假设您希望“用户名”仅在开始时匹配,并假设必须重写其下的所有位置,您需要的是:
RewriteEngine On
RewriteRule ^username(/(.*))? teacher$1
这将忽略“用户名”,但会在路径末尾添加其余路径,因此http://example.com/username/training.php
会显示(但不会将地址更改为)http://example.com/teacher/training.php
的内容。如果您希望它进行完全重定向以便更改网址,请在[R=301]
行的末尾添加RewriteRule
。