【问题标题】:Simple URI rewrite with .htaccess使用 .htaccess 重写简单的 URI
【发布时间】:2009-07-24 17:04:17
【问题描述】:

我当前的 .htaccess 文件

Options +FollowSymLinks 
RewriteEngine on
RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} !^falsebase\.net
RewriteRule (.*) http://falsebase.net/$1 [R=301,L]

我想补充一点,所以当用户在地址栏中输入“http://u.falsebase.net/USERNAME”时,他们会被定向到“http://falsebase.net/profile.php?name=USERNAME”。

我想这很简单,我只是没有使用 .htaccess 的经验,并且在扫描了大约 12 个与此类似的其他线程后,我没有得到任何一个一致的答案。

【问题讨论】:

    标签: url mod-rewrite url-rewriting


    【解决方案1】:

    您需要使用内部重写规则,而不是外部重定向。您真的不希望您的用户看到像 /profile.php?name=USERNAME 这样丑陋的 URL。

    所以尝试使用类似的东西

    RewriteEngine On
    RewriteRule ^/(.+)$ /profile.php?name=$1
    

    其中 .+ 是与用户名匹配的模式。

    如果您知道您的用户名都是 a-z 或 A-Z 字符,例如,您可以在上面使用

    RewriteEngine On
    RewriteRule ^/(a-zA-Z)$ /profile.php?name=$1
    

    请记住,将 URL 的用户名部分设置为 /username 将捕获 所有 个可能的 URL。您可能希望将它们放入特定的命名空间中,例如

    http://www.example.com/user/<username>
    

    输入的用户名在哪里,在这种情况下你会使用

    RewriteEngine On
    RewriteRule ^/user/(.+)$ /profile.php?name=$1
    

    等等

    【讨论】:

    • 我试过了,但这似乎不起作用。我正在尝试在我当前的 htaccess 文件中添加一些东西(如上所示),而不是用一些东西替换它。我希望 htaccess 重定向所有 www.mydomain.net -> mydomain.net(它已经这样做并且工作正常)并添加内部重写,以便 mydomain.net/u/USERNAME 始终加载页面 mydomain.net/profile。 php?name=USERNAME,同时仍将 mydomain.net/u/USERNAME 作为 URL 显示。
    • 好的,所以我知道已经有一段时间了,但我发现这是我的托管服务没有读取我的 .htaccess 文件。感谢您的帮助!
    【解决方案2】:

    试试这些规则:

    RewriteCond %{HTTP_HOST} .
    RewriteCond %{HTTP_HOST} !^(u\.)?falsebase\.net
    RewriteRule (.*) http://falsebase.net/$1 [R=301,L]
    
    RewriteCond %{HTTP_HOST} !^(u\.)?falsebase\.net
    RewriteRule ^[^/]+$ http://falsebase.net/profile.php?name=$0
    

    或者如果内部重定向是可能的:

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{HTTP_HOST} !^(u\.)?falsebase\.net
    RewriteRule ^[^/]+$ profile.php?name=$0
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-10
      • 1970-01-01
      • 2011-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多