1

我知道这个网站上有很多关于这个主题的问题,还有很多关于谷的教程。但是,我现在已经搜索了一段时间,但似乎找不到可以解释我的具体情况的内容。

我正在构建一个社交应用程序,其中整个应用程序都存储在网站的子域目录中,如下所示:subdomain.example.com/network/ <-- network 是所有应用程序文件的目录。

我的 .htaccess 文件位于子域的根目录中,到目前为止,我已经将它从所有文件中删除,并且它在整个项目中都应该正常工作。我有一个 user.php 页面,每个用户的个人资料都基于该页面,每个用户的唯一标识符是他们的用户名(不像大多数人使用的“id”。)所以现在网址看起来像/network/user.php?username =TylerB这不是很漂亮。我尝试了许多不同的方法来让它看起来像/network/user/TylerB但我尝试的任何方法似乎都不起作用。我不知道是因为它在目录,子域还是什么中。截至目前,当我拥有/network/user/TylerB(TylerB 是我的用户名)时,它给了我一个 404 错误。

这是我当前的 .htaccess 文件:

RewriteEngine On
RewriteRule ^user/([^/\.]+)/?$ user.php?username=$1 [L]
RewriteRule ^([a-z]+)/([a-z\-]+)$ /$1/$2.php [L]
4

1 回答 1

1

我建议RewriteBase在完整模式上设置指令和匹配,确保重写/network/目录。

RewriteEngine On
RewriteBase /
RewriteRule ^network/user/([^/\.]+)/? /network/user.php?username=$1 [L]
RewriteRule ^([a-z]+)/([a-z\-]+)$ /$1/$2.php [L]

使用http://htaccess.madewithlove.be/上的测试工具,我得到以下输出:

This rule was met, the new url is http://example.com/network/user.php?username=name
The tests are stopped because the L in your RewriteRule options
于 2012-10-26T01:57:59.537 回答